Skip to content

GoShimmer-0.7.6

Compare
Choose a tag to compare
@github-actions github-actions released this 23 Sep 12:24
· 1408 commits to develop since this release
b5e056b

v0.7.6 - 2021-09-23

This release does not include changes to the consensus mechanism and still uses FPC+FCoB.

This is a breaking maintenance release. We urge community node operators to re-apply their config changes on
top of config.default.json as many config keys have changed.

Most importantly, the node's identity seed is now defined via node.seed (previously autopeering.seed). The node will
now store the private key derived from the seed per default under a separate peerdb database which must not be shared.
If the node is started with a node.seed different to what an existing private key in a peerdb contains, the node panics;
if you want to automatically override the already stored private key, use node.overwriteStoredSeed=true.

We have also created a more streamlined deployment for our infrastructure which means that IF provided endpoints have changed:

Service Old New
Analysis Server ressims.iota.cafe:21888 analysisentry-01.devnet.shimmer.iota.cafe:21888
IOTA 2.0 DevNet Analyzer http://ressims.iota.cafe:28080 http://analysisentry-01.devnet.shimmer.iota.cafe:28080
Autopeering Entry Node "2PV5487..." [identity]@ressims.iota.cafe:15626 [identity]@analysisentry-01.devnet.shimmer.iota.cafe:15626
LogStash Remote Log ressims.iota.cafe:5213 metrics-01.devnet.shimmer.iota.cafe:5213
Daily Database N/A https://dbfiles-goshimmer.s3.eu-central-1.amazonaws.com/dbs/nectar/automated/latest-db.tgz

Other changes:

  • Refactors codebase, mainly:
    • Usage of time.Duration instead of numeric types for time parameters/config options variables etc.
    • Normalization of all plugin names to camel case and without spaces
    • Extracts some code from the MessageLayer plugin into a new Consensus plugin
    • Use of dependency injection to populate plugin dependencies via https://github.com/uber-go/dig
  • Adds CI workflows to use GitHub environments to deploy develop branch changes and releases
  • Adds a check to see whether during the GoShimmer docker image build, the snapshot file should be downloaded
  • Adds a new plugin Peer which stores the node's identity private key in a separate database
  • Adds a broadcast plugin by community member @arne-fuchs simply providing a raw TCP stream of txs
  • Adds a lock to prevent multiple active instances of the CLI wallet
  • Adds improvements to the spammer precision
  • Adds timestamp filter
  • Fixes a bug where the TxInfo object passed to the mana booking could have a wrong totalAmount
  • Refactors the ./tools/docker-network to leverage docker profiles
  • Updates frontend dependencies
  • Updates config.default.json to use our new infrastructure

Plugin names have been normalized, so please make sure to adapt your custom config too:

  • Analysis-Dashboard -> AnalysisDashboard
  • Analysis-Server -> AnalysisServer
  • Analysis-Client -> AnalysisClient
  • Autopeering -> AutoPeering (no effect)
  • Graceful Shutdown -> GracefulShutdown
  • Manualpeering -> ManualPeering (no effect)
  • PoW -> POW (no effect)
  • WebAPI autopeering Endpoint -> WebAPIAutopeeringEndpoint
  • WebAPI data Endpoint -> WebAPIDataEndpoint
  • WebAPI DRNG Endpoint -> WebAPIDRNGEndpoint
  • WebAPI faucet Endpoint -> WebAPIFaucetEndpoint
  • WebAPI healthz Endpoint -> WebAPIHealthzEndpoint
  • WebAPI info Endpoint -> WebAPIInfoEndpoint
  • WebAPI ledgerstate Endpoint -> WebAPILedgerstateEndpoint
  • WebAPI Mana Endpoint -> WebAPIManaEndpoint
  • WebAPI message Endpoint
  • WebAPIMessageEndpoint
  • snapshot -> Snapshot (no effect)
  • WebAPI tools Endpoint (deleted) -> WebAPIToolsDRNGEndpoint & WebAPIToolsMessageEndpoint
  • WebAPI WeightProvider Endpoint -> WebAPIWeightProviderEndpoint

Config key changes config.default.json:

@@ -1,7 +1,7 @@
 {
   "analysis": {
     "client": {
-      "serverAddress": "ressims.iota.cafe:21888"
+      "serverAddress": "analysisentry-01.devnet.shimmer.iota.cafe:21888"
     },
     "server": {
       "bindAddress": "0.0.0.0:16178"
@@ -11,17 +11,17 @@
       "dev": false
     }
   },
-  "autopeering": {
+  "autoPeering": {
     "entryNodes": [
-      "2PV5487xMw5rasGBXXWeqSi4hLz7r19YBt8Y1TGAsQbj@ressims.iota.cafe:15626",
+      "2PV5487xMw5rasGBXXWeqSi4hLz7r19YBt8Y1TGAsQbj@analysisentry-01.devnet.shimmer.iota.cafe:15626",
       "5EDH4uY78EA6wrBkHHAVBWBMDt7EcksRq6pjzipoW15B@entry-devnet.tanglebay.com:14646"
     ],
-    "port": 14626
+    "bindAddress": "0.0.0.0:14626"
   },
   "dashboard": {
     "bindAddress": "127.0.0.1:8081",
     "dev": false,
-    "basic_auth": {
+    "basicAuth": {
       "enabled": false,
       "username": "goshimmer",
       "password": "goshimmer"
@@ -44,7 +44,7 @@
         "64wCsTZpmKjRVHtBKXiFojw7uw3GszumfvC4kHdWsHga"
       ]
     },
-    "xteam": {
+    "xTeam": {
       "instanceId": 1339,
       "threshold": 4,
       "distributedPubKey": "",
@@ -69,10 +69,7 @@
     "bindAddress": "0.0.0.0:10895"
   },
   "gossip": {
-    "port": 14666,
-    "tipsBroadcaster": {
-      "interval": "10s"
-    }
+    "bindAddress": "0.0.0.0:14666"
   },
   "logger": {
     "level": "info",
@@ -85,7 +82,7 @@
     ],
     "disableEvents": true,
     "remotelog": {
-      "serverAddress": "ressims.iota.cafe:5213"
+      "serverAddress": "metrics-01.devnet.shimmer.iota.cafe:5213"
     }
   },
   "metrics": {
@@ -103,6 +100,7 @@
     "externalAddress": "auto"
   },
   "node": {
+    "seed": "",
+    "peerDBDirectory": "peerdb",
     "disablePlugins": [],
     "enablePlugins": []
   },
@@ -110,7 +108,6 @@
     "difficulty": 22,
     "numThreads": 1,
     "timeout": "1m"
-
   },
   "profiling": {
     "bindAddress": "127.0.0.1:6061"
@@ -120,13 +117,16 @@
   },
   "webapi": {
     "bindAddress": "127.0.0.1:8080",
-    "basic_auth": {
+    "basicAuth": {
       "enabled": false,
       "username": "goshimmer",
       "password": "goshimmer"
     }
   },
+  "broadcast": {
+    "bindAddress": "127.0.0.1:5050"
+  },
   "networkdelay": {
     "originPublicKey": "9DB3j9cWYSuEEtkvanrzqkzCQMdH1FGv3TawJdVbDxkd"
   }