Skip to content

GoShimmer-0.1.0

Compare
Choose a tag to compare
@luca-moser luca-moser released this 03 Feb 14:27
· 2163 commits to master since this release
fa821f9

v0.1.0 - 2020-01-31

Note that this release is a complete breaking change, therefore node operators are instructed to upgrade.

This release mainly integrates the shared codebase between Hornet and GoShimmer called hive.go,
to foster improvements in both projects simultaneously. Additionally, the autopeering code from autopeering-sim
has been integrated into the codebase. For developers a Go client library is now available to communicate
with a GoShimmer node in order to issue, get and search zero value transactions and retrieve neighbor information.

A detailed list about the changes in v0.1.0 can be seen under the given milestone.

  • Adds config keys to make bind addresses configurable
  • Adds a relay-checker tool to check transaction propagation
  • Adds database versioning
  • Adds concrete shutdown order for plugins
  • Adds BadgerDB garbage collection routine
  • Adds SPA dashboard with TPS and memory chart, neighbors and Tangle explorer (spa plugin)
  • Adds option to manually define autopeering seed/private keys
  • Adds Golang CI and GitHub workflows as part of the continuous integration pipeline
  • Adds back off policies when doing network operations
  • Adds an open port check which checks whether NATs are configured properly
  • Adds netutil package
  • Adds the glumb visualizer backend as a plugin called graph (has to be manually enabled, check the readme)
  • Adds rudimentary PoW as a rate control mechanism
  • Adds the autopeering code from autopeering-sim
  • Adds association between transactions and their address
  • Adds the possibility to allow a node to function/start with gossiping disabled
  • Adds buffered connections for gossip messages
  • Adds an OAS/Swagger specification file for the web API
  • Adds web API and refactors endpoints: broadcastData, findTransactionHashes,
    getNeighbors, getTransactionObjectsByHash, getTransactionTrytesByHash, getTransactionsToApprove, spammer
  • Adds a Go client library over the web API
  • Adds a complete rewrite of the gossiping layer
  • Fixes the autopeering visualizer to conform to the newest autopeering changes.
    The visualizer can be accessed here.
  • Fixes parallel connections by improving the peer selection mechanism
  • Fixes that LRU caches are not flushed correctly up on shutdown
  • Fixes consistent application naming (removes instances of sole "Shimmer" in favor of "GoShimmer")
  • Fixes several analysis server related issues
  • Fixes race condition in the PoW code
  • Fixes race condition in the daemon package
  • Fixes several race conditions in the analysis package
  • Fixes the database not being closed when the node shuts down
  • Fixes webauth plugin to function properly with the web API
  • Fixes solidification related issues
  • Fixes several instances of overused goroutine spawning
  • Upgrades to BadgerDB v2.0.1
  • Upgrades to latest iota.go library
  • Removes sent count from spammed transactions
  • Removes usage of errors.Identifiable and github.com/pkg/errors in favor of standard lib errors package
  • Use network, parameter, events, database, logger, daemon, workerpool and node packages from hive.go
  • Removes unused plugins (zmq, dashboard, ui)