Skip to content

Releases: iotaledger/hornet

HORNET-2.0.0-alpha1

31 Jan 16:02
8595b02
Compare
Choose a tag to compare
HORNET-2.0.0-alpha1 Pre-release
Pre-release

What's Changed

HORNET-1.1.3

29 Dec 11:03
1d93f0b
Compare
Choose a tag to compare

Added

- Add new db-health tool (#1255)

Config file changes

config.json

  "protocol": {
    ...
    "publicKeyRanges": [
      ...
      {
          "key": "7bac2209b576ea2235539358c7df8ca4d2f2fc35a663c760449e65eba9f8a6e7",
-         "start": 2111060,
+         "start": 2108160,
          "end": 3666260
      },
      ...
    ]
  },

HORNET-1.1.2

22 Dec 17:00
54e0977
Compare
Choose a tag to compare

Changed

- Update tangle bay entry nodes (#1249)

Fixed

- Increase the maxWebsocketMessageSize to account for longer dashboard usernames. (#1251)

Chore

- Update dashboard (#1252)

Config file changes

config.json

  "p2p": {
    "autopeering": {
      "entryNodes": [
        ...
-        "/dns/entry-mainnet.tanglebay.com/udp/14626/autopeering/iot4By1FD4pFLrGJ6AAe7YEeSu9RbW9xnPUmxMdQenC"
+        "/dns/entry-0.mainnet.tanglebay.com/udp/14626/autopeering/iot4By1FD4pFLrGJ6AAe7YEeSu9RbW9xnPUmxMdQenC",
+        "/dns/entry-1.mainnet.tanglebay.com/udp/14636/autopeering/CATsx21mFVvQQPXeDineGs9DDeKvoBBQdzcmR6ffCkVA"
      ],
    }

HORNET-1.1.1

22 Dec 10:38
d7f72a6
Compare
Choose a tag to compare

Changed

- Added ulimit and stop_grace_period to docker-compose.yml and documentation (#1242)

Fixed

- Fixed WebSocket disconnecting on Safari browsers (#1243)
- Fixed MQTT memory leak (#1246)

Config file changes

config.json

    "prometheus": {
       ...
       "coordinatorMetrics": true,
+       "mqttBrokerMetrics": true,
       "debugMetrics": false,
       ...
    },

HORNET-1.1.0

10 Dec 11:45
1f6e0ee
Compare
Choose a tag to compare

Added

- Add participation plugin (#1204, #1207, #1208, #1209, #1210, #1212, #1215, #1218, #1221, #1231, #1232, #1233, 1234)
- Add participation-cli tool (#1206, #1219)
- Add rocksdb static binaries for macOS (#1192)
- Add config_devnet.json (#1183)
- Add snap-hash tool to calculate the ledger state hash of a snapshot (#1184)
- Add db-hash tool to calculate the ledger state hash of a database (#1184)
- Add coo-fix-state tool (#1185)
- Add p2pstore to docker docs (#1177)

Changed

- Refactor the JWT auth for the API (#1191)
- Separate UTXO database (#1201, #1205)
- Only accept bech32 addresses with the correct prefix in the rest API (#1197)
- Use target milestone timestamp for snapshots timestamps (#1184)
- Expose the enabled HTTP plugins (Faucet, Debug, Participation) as features in the info endpoint (#1208)
- Change MQTT topic subscription log to debug level (#1195)
- Add JSON output to some of the tools (#1199)

Fixed

- Optimize RocksDB level compaction (#1223)
- Improve search missing milestones (#1196) 
- Ignore autopeering peers in unknownPeersLimit (#1227)
- Include autopeered and unknown peers in connected count of heartbeat messages (#1179)
- Fix/faucet conflicting tx (#1222, #1235)
- Fix warpsync milestone deadlock (re-verify known milestone payloads) (#1186)
- Use integer instead of strings for ulimits in docker-compose file
- Fix mqtt port in private tangle scripts (#1186)

Removed

- Remove config_chrysalis_testnet.json (#1183)
- Remove powsrv.io integration (#1229) 

Chore

- Updated dependencies and Go 1.17 (#1193)
- Updated cross compiler to latest version (#1224)
- Updated deps to latest versions (#1192, #1217, #1182, #1225)

Cleanups

- Use contexts to cancel instead of signal channels (#1195, #1198)
- Rename Snapshot to SnapshotManager (#1184)
- Rename UTXO to to UTXOManager (#1184)
- Rename Manager to to PeeringManager (#1184)
- Rename Service to GossipService (#1184)
- Move autopeering logic to AutopeeringManager (#1178)
- Move sync status logic to SyncManager (#1184)
- Move DatabaseSize function from storage to database  (#1184)
- Move Milestone validation logic to MilestoneManager (#1184)
- Refactor snapshot package (#1184)
- Add WrappedLogger (#1228)

Workflows

- Run snyk test in a schedule instead on every PR (#1200)
- Updated CodeQL workflow according to generator from github (#1194)
- Enable Dependabot (#1194)
- Added twitter bot notification on release (#1216)

Config file changes

config.json

    "jwtAuth": {
-      "enabled": false,
      "salt": "HORNET"
    },
-    "excludeHealthCheckFromAuth": false,
-    "permittedRoutes": [
+    "publicRoutes": [
      "/health",
      "/mqtt",
      "/api/v1/info",
      "/api/v1/tips",
-      "/api/v1/messages/:messageID",
-      "/api/v1/messages/:messageID/metadata",
-      "/api/v1/messages/:messageID/raw",
-      "/api/v1/messages/:messageID/children",
-      "/api/v1/messages",
+      "/api/v1/messages*",
-      "/api/v1/transactions/:transactionID/included-message",
+      "/api/v1/transactions*",
-      "/api/v1/milestones/:milestoneIndex",
-      "/api/v1/milestones/:milestoneIndex/utxo-changes",
+      "/api/v1/milestones*",
-      "/api/v1/outputs/:outputID",
+      "/api/v1/outputs*",
-      "/api/v1/addresses/:address",
-      "/api/v1/addresses/:address/outputs",
-      "/api/v1/addresses/ed25519/:address",
-      "/api/v1/addresses/ed25519/:address/outputs",
+      "/api/v1/addresses*",
      "/api/v1/treasury"
+      "/api/v1/receipts*",
+      "/api/plugins/faucet/*",
+      "/api/plugins/participation/events*",
+      "/api/plugins/participation/outputs*",
+      "/api/plugins/participation/addresses*"
    ],
+    "protectedRoutes": [
+      "/api/v1/*",
+      "/api/plugins/*"
+    ],
-    "whitelistedAddresses": [
-      "127.0.0.1",
-      "::1"
-    ],

HORNET-1.1.0-rc1

03 Dec 18:52
299c946
Compare
Choose a tag to compare
HORNET-1.1.0-rc1 Pre-release
Pre-release

Added

- Add participation plugin (#1204, #1207, #1208, #1209, #1210, #1212, #1215, #1218, #1221)
- Add participation-cli tool (#1206, #1219)
- Add rocksdb static binaries for macOS (#1192)

Changed

- Refactor the JWT auth for the API (#1191)
- Separate UTXO database (#1201, #1205)
- Add JSON output to some of the tools (#1199)
- Only accept bech32 addresses with the correct prefix in the rest API (#1197)

Fixed

- Improve search missing milestones (#1196) 
- Optimize RocksDB level compaction (#1223)
- Use integer instead of strings for ulimits in docker-compose file 

Chore

- Updated dependencies and Go 1.17 (#1193)
- Updated cross compiler to latest version (#1224)
- Updated deps to latest versions (#1192, #1217, #1182, #1225)
- Use contexts to cancel instead of signal channels (#1195, 1198)

Workflows

- Run snyk test in a schedule instead on every PR (#1200)
- Updated CodeQL workflow according to generator from github (#1194)
- Added twitter bot notification on release (#1216)

HORNET-1.0.6-rc1

04 Oct 13:32
4552f70
Compare
Choose a tag to compare
HORNET-1.0.6-rc1 Pre-release
Pre-release

Added

- Add config_devnet.json (#1183)
- Add snap-hash tool to calculate the ledger state hash of a snapshot (#1184)
- Add db-hash tool to calculate the ledger state hash of a database (#1184)
- Add coo-fix-state tool (#1185)
- Add p2pstore to docker docs (#1177)

Changed

- Use target milestone timestamp for snapshots timestamps (#1184)

Fixed

- Fix warpsync milestone deadlock (re-verify known milestone payloads) (#1186)
- Fix mqtt port in private tangle scripts (#1186)

Removed

- Remove config_chrysalis_testnet.json (#1183)

Cleanups

- Move autopeering logic to AutopeeringManager (#1178)
- Rename Snapshot to SnapshotManager (#1184)
- Rename UTXO to to UTXOManager (#1184)
- Rename Manager to to PeeringManager (#1184)
- Rename Service to GossipService (#1184)
- Move DatabaseSize function from storage to database  (#1184)
- Move sync status logic to SyncManager (#1184)
- Move Milestone validation logic to MilestoneManager (#1184)
- Refactor snapshot package (#1184)

HORNET-1.0.5

02 Sep 11:21
ecdb18b
Compare
Choose a tag to compare

Added

- Add faucet plugin
- Add faucet website
- Add database migration tool
- Add io utils to read/write a TOML file
- Add private tangle scripts to deb/rpm files
- New public keys applicable for milestone ranges between 1333460-4443860

Changed

- Move p2p identity private key to PEM file
- Run autopeering entry node in standalone mode
- Merge peerstore and autopeering db path in config
- Expose autopeering port in dockerfile
- Add detailed reason for snapshot download failure
- Print bech32 address in toolset
- Use kvstore for libp2p peerstore and autopeering database
- Use internal bech32 HRP instead of additional config parameter
- Update go version in workflows and dockerfile
- Update github workflow actions
- Update go modules
- Update libp2p
- Autopeering entry nodes for mainnet
- Snapshot download sources for mainnet/comnet

Fixed

- Fix data size units according to SI units and IEC 60027
- Fix possible jwt token vulnerabilities
- Fix nil pointer exception in optimalSnapshotType
- Set missing config default values for mainnet
- Do not disable plugins for the entry nodes in the integration tests
- Fix dependency injection of global config pars if pluggables are disabled by adding a InitConfigPars stage
- Do not panic in MilestoneRetrieverFromStorage
- Fix logger init in test cases

Removed

- Remove support for boltdb

Cleanups

- Refactor node/pluggable logger interface
- Check returned error at the initialization of new background workers
- Fixed return values order of StreamSnapshotDataTo
- Do not use unbuffered channels for signal.Notify
- Change some variable names according to linter suggestions
- Remove duplicate imports
- Remove dead code
- Cleanup toolset listTools func
- Replace deprecated prometheus functions
- Fix comments
- Remove 'Get' from getter function names
- Add error return value to SetConfirmedMilestoneIndex
- Add error return value to SetSnapshotMilestone
- Add error return value to database health functions
- Add error return value to loadSnaphotInfo
- Replace http.Get with client.Do and a context
- Add missing checks for returned errors
- Add linter ignore rules
- Cleanup unused parameters and return values
- Fix some printouts and move hornet logo to startup
- Return error if database init fails
- Reduce dependencies between plugins/core modules
- Replace deprecated libp2p crypto Bytes function
- Add error return value to loadSolidEntryPoints
- Rename util files to utils
- Move database events to package
- Move graceful shutdown logic to package
- Move autopeering local to pkg
- Add error return value to authorization init functions

Config file changes

config.json

  "snapshots": {
    "downloadURLs": [
      {
-        "full": "https://mainnet.tanglebay.com/ls/full_snapshot.bin",
+        "full": "https://cdn.tanglebay.com/snapshots/mainnet/full_snapshot.bin",
-        "delta": "https://mainnet.tanglebay.com/ls/delta_snapshot.bin"
+        "delta": "https://cdn.tanglebay.com/snapshots/mainnet/delta_snapshot.bin"
      }
    ]
  },
  "protocol": {
    "publicKeyRanges": [
      {
        "key": "ba6d07d1a1aea969e7e435f9f7d1b736ea9e0fcb8de400bf855dba7f2a57e947",
        "start": 552960,
        "end": 2108160
-      }
+      },
+      {
+        "key": "760d88e112c0fd210cf16a3dce3443ecf7e18c456c2fb9646cabb2e13e367569",
+        "start": 1333460,
+        "end": 2888660
+      },
+      {
+        "key": "7bac2209b576ea2235539358c7df8ca4d2f2fc35a663c760449e65eba9f8a6e7",
+        "start": 2111060,
+        "end": 3666260
+      },
+      {
+        "key": "edd9c639a719325e465346b84133bf94740b7d476dd87fc949c0e8df516f9954",
+        "start": 2888660,
+        "end": 4443860
+      }
    ]
  },
  "p2p": {
-    "identityPrivateKey": "",
-    "peerStore": {
-      "path": "./p2pstore"
-    }
+    "db": {
+      "path": "p2pstore"
+    },
    "autopeering": {
-      "db": {
-        "path": "./p2pstore"
-      },
      "entryNodes": [
-        "/dns/lucamoser.ch/udp/14926/autopeering/4H6WV54tB29u8xCcEaMGQMn37LFvM1ynNpp27TTXaqNM",
+        "/dns/lucamoser.ch/udp/14826/autopeering/4H6WV54tB29u8xCcEaMGQMn37LFvM1ynNpp27TTXaqNM",
+        "/dns/entry-hornet-0.h.chrysalis-mainnet.iotaledger.net/udp/14626/autopeering/iotaPHdAn7eueBnXtikZMwhfPXaeGJGXDt4RBuLuGgb",
+        "/dns/entry-hornet-1.h.chrysalis-mainnet.iotaledger.net/udp/14626/autopeering/iotaJJqMd5CQvv1A61coSQCYW9PNT1QKPs7xh2Qg5K2",
         "/dns/entry-mainnet.tanglebay.com/udp/14626/autopeering/iot4By1FD4pFLrGJ6AAe7YEeSu9RbW9xnPUmxMdQenC"
      ],
    }
  },
+  "faucet": {
+    "amount": 10000000,
+    "smallAmount": 1000000,
+    "maxAddressBalance": 20000000,
+    "maxOutputCount": 127,
+    "indexationMessage": "HORNET FAUCET",
+    "batchTimeout": "2s",
+    "powWorkerCount": 0,
+    "website": {
+      "bindAddress": "localhost:8091",
+      "enabled": true
+    },
  }

HORNET-1.0.5-rc1

27 Aug 10:33
bb8c496
Compare
Choose a tag to compare
HORNET-1.0.5-rc1 Pre-release
Pre-release

Added

- Add faucet plugin
- Add faucet website
- Add database migration tool
- Add io utils to read/write a TOML file

Changed

- Move p2p identity private key to PEM file
- Run autopeering entry node in standalone mode
- Merge peerstore and autopeering db path in config
- Expose autopeering port in dockerfile
- Add detailed reason for snapshot download failure
- Print bech32 address in toolset
- Use kvstore for libp2p peerstore and autopeering database
- Use internal bech32 HRP instead of additional config parameter
- Update go version in workflows and dockerfile
- Update github workflow actions
- Update go modules
- Update libp2p

Fixed

- Fix data size units according to SI units and IEC 60027
- Fix possible jwt token vulnerabilities
- Fix nil pointer exception in optimalSnapshotType
- Set missing config default values for mainnet
- Do not disable plugins for the entry nodes in the integration tests
- Fix dependency injection of global config pars if pluggables are disabled by adding a InitConfigPars stage
- Do not panic in MilestoneRetrieverFromStorage
- Fix logger init in test cases

Removed

- Remove support for boltdb

Cleanups

- Refactor node/pluggable logger interface
- Check returned error at the initialization of new background workers
- Fixed return values order of StreamSnapshotDataTo
- Do not use unbuffered channels for signal.Notify
- Change some variable names according to linter suggestions
- Remove duplicate imports
- Remove dead code
- Cleanup toolset listTools func
- Replace deprecated prometheus functions
- Fix comments
- Remove 'Get' from getter function names
- Add error return value to SetConfirmedMilestoneIndex
- Add error return value to SetSnapshotMilestone
- Add error return value to database health functions
- Add error return value to loadSnaphotInfo
- Replace http.Get with client.Do and a context
- Add missing checks for returned errors
- Add linter ignore rules
- Cleanup unused parameters and return values
- Fix some printouts and move hornet logo to startup
- Return error if database init fails
- Reduce dependencies between plugins/core modules
- Replace deprecated libp2p crypto Bytes function
- Add error return value to loadSolidEntryPoints
- Rename util files to utils
- Move database events to package
- Move graceful shutdown logic to package
- Move autopeering local to pkg
- Add error return value to authorization init functions

Config file changes

config.json

  "p2p": {
-    "identityPrivateKey": "",
-    "peerStore": {
-      "path": "./p2pstore"
-    }
+    "db": {
+      "path": "p2pstore"
+    },
    "autopeering": {
-      "db": {
-        "path": "./p2pstore"
-      },
    }
  },
+  "faucet": {
+    "amount": 10000000,
+    "smallAmount": 1000000,
+    "maxAddressBalance": 20000000,
+    "maxOutputCount": 127,
+    "indexationMessage": "HORNET FAUCET",
+    "batchTimeout": "2s",
+    "powWorkerCount": 0,
+    "website": {
+      "bindAddress": "localhost:8091",
+      "enabled": true
+    },
  }

HORNET-1.0.4

04 Aug 16:34
809f618
Compare
Choose a tag to compare

Added

- Autopeering with two default entry nodes (disabled by default)
- Default config for community network

Changed

- Reduces the default WarpSync advancement range back to 150 as the previous value was only a workaround.
- Cleaned up parameter names and values in all config files
- Rate limit for dashboard login changed from 1 request every 5 minutes to 5 requests every minute

Config file changes

config.json

  "receipts": {
    "backup": {
-      "folder": "receipts"
+      "path": "receipts"
    },
  }
  "p2p": {
    "bindMultiAddresses": [
      "/ip4/0.0.0.0/tcp/15600",
+      "/ip6/::/tcp/15600"
    ],
-    "gossipUnknownPeersLimit": 4,
+    "gossip": {
+      "unknownPeersLimit": 4,
+      "streamReadTimeout": "1m0s",
+      "streamWriteTimeout": "10s"
+    },
  "autopeering": {
-    "dirPath": "./p2pstore"
+    "db": {
+      "path": "./p2pstore"
+    },
  }
  "warpsync": {
-    "advancementRange": 10000
+    "advancementRange": 150
  },
  "spammer": {
-    "mpsRateLimit": 5.0,
+    "mpsRateLimit": 0.0,
  },