-
Luca Moser authoredLuca Moser authored
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGELOG.md 9.37 KiB
v0.2.1 - 2020-07-01
- Adds PoW requirement to faucet payloads
- Adds tips broadcaster to ensure that all chains are getting solidified
- Fixes being able to send a double-spend via one node
- Breaking: bumps network and database versions
v0.2.0 - 2020-06-30
- Adds the value transfer dApp:
- New binary transaction layout
- UTXO model
- Support for transactions with Ed25519 and BLS signatures
- Parallel reality based ledger state
- Support for colored tokens
- Conflict resolution via FPC
- Applied FCoB rules
- Adds the network delay dApp which is used to gather the avg. network delay occurring in the network
- Adds the faucet dApp giving the ability to request funds for testing via the dashboard or web API
- Adds the DRNG dApp which is used to propagate random numbers produced by a dRand committee (this dApp is inactive)
- Adds the base communication layer
- Adds improved analysis server:
- Splits it into 3 separate plugins
analysis-client
/analysis-dashboard
/analysis-server
- Applies heartbeat pattern for robustness on both client and server side
- Uses TLV denoted messages for communication
- Complete new dashboard with live visualisations of the network graph and ongoing conflicts
- Use short node IDs throughout the analysis dashboard
- Prometheus exporter to expose global network metrics
- Storage for conflicts inside a MongoDB for further processing
- Complete rewritten autopeering data retention
- Splits it into 3 separate plugins
- Adds additional HTTP API routes:
- "healtz" route to query the health of the node (for LBs)
- Query transaction attachment locations
- Query transactions by IDs
- Send transactions
- Get UTXOs on addresses
- Query info about the node
- Issue a faucet funding request
- Query dRNG committee
- Query dRNG random number
- Issue data payloads
- Adds dashboard improvements:
- Tips chart
- Communication layer visualizer
- Address and UTXOs view
- Message payload view
- DRNG live feed
- Faucet page to request funds
- Support different payload views (data, value, faucet, unknown)
- Adds integration test framework and corresponding tests:
- Autopeering/Network Split
- Message propagation
- FPC 50/50 network split voting
- Faucet funding
- Value transfers
- Synchronization
- Adds refactored communication layer code
- Adds BLAKE2-based PoW for rate control
- Adds rewritten FPC package
- Adds possibility to change config options with environment variables
- Adds sample Grafana dashboard for local node instances
- Adds snapshot-file import
- Adds "dirty-flag" to the
Database
plugin to check for corrupted databases - Adds BadgerDB gargbage collection on startup/shutdown and removes periodic GC
- Adds review-dog linter and automatic integration tests execution to continuous integration pipeline
- Adds
Prometheus
exporter plugin with exposure for following metrics - Adds
Sync
plugin keeping track of the node's synchronization state - Adds
Issuer
plugin which takes care of issuing messages (and blocking any issuance when the node is desynced) - Adds
Profiling
plugin which exposes thepprof
endpoints and is now configurable - Adds
Bootstrap
plugin which continuously issues messages to keep the comm. layer graph growing - Adds proper metrics collection in the
Metrics
plugin - Adds support for the new HTTP API routes to the Go client library
- Adds
tools/docker-network
to run an isolated GoShimmer network with a chosen amount of nodes. Predefined local and global grafana dashboards are spinned up as well for the network - Upgrades
hive.go
with various improvements and fixes - Fixes bind address prints to not be normalized
- Fixes usage of WebSocket message rate limiter
- Fixes disabled/enabled plugins list in info response
- Fixes the
Graceful Shutdown
plugin not showing the actual background workers during shutdown. The node operator is now able to see pending background workers in the order in which they are supposed to be terminated - Refactors display of IDs to use Base58 throughout the entire codebase
- Increases network and database versions
- Removes usage of non std
errors
package - Removes
Graph
plugin - Renames
SPA
plugin toDashboard
- Makes running GoShimmer with a config file mandatory if not explicitly bypassed
v0.1.3 - 2020-03-16
- Update SPA plugin's JS dependencies
- Upgrade
github.com/gobuffalo/packr
to v2.8.0 - Resolves a security issue in the packr dependency, which would allow an unauthenticated attacker to read any file from the application's filesystem
v0.1.2 - 2020-02-24
- Adds
--version
flag to retrieve the GoShimmer version - Adds the version and commit hash to the remote log logging
- Replaces the autopeering module with the one from hive.go
- Changed the pprof listen port to
6061
to avoid conflict with Hornet - Fixes
invalid stored peer
messages - Fixes masternodes getting removed if they were offline
- Fixes
-c
and-d
to define config file/dir - Fixes drop messages about full queues appearing too many times
- Fixes crash due to incopatible transaction size
- Changed the salt lifetime to 2 hours from 30 minutes
v0.1.1 - 2020-02-07
This release contains a series of fixes:
- Adds logging of the underlying error when a neighbor connection couldn't be established
- Adds the
RemoteLog
plugin (disabled per default) which sends log messages to a centralized logging service - Removes the status screen plugin in favor of the SPA/dashboard
- Fixes the neighbor send queue being too small causing spam in the log
- Fixes a deadlock which occurred when a neighbor disconnected while at the same time a
request transaction
packet was getting processed which was received by the disconnected neighbor - Fixes memory consumption by disabling BadgerDB's compression
- Fixes analysis server WebSocket replays freezing the backend code
- Fixes sending on the neighbor send queue if the neighbor is disconnected
- Fixes
BufferedConnection
's read and written bytes to be atomic
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
andgithub.com/pkg/errors
in favor of standard liberrors
package - Use
network
,parameter
,events
,database
,logger
,daemon
,workerpool
andnode
packages from hive.go - Removes unused plugins (
zmq
,dashboard
,ui
)