Releases: bosagora/agora
v0.9.0: Passive slashing, per-output type, better setup and debug experience
Major changes since v0.8.1
Pre-images are now used to generate block signatures
Block signatures are now based on pre-images for the "signature noise" derivation.
This implements one of the aspect of Agora's passive slashing policy,
which is that signing two blocks for the same height reveal a validator's private key.
Transaction type has been moved to Output
Previously, transactions had a "type" field that would indicate the type of its output:
payment (the default), freeze, or coinbase. This created issues as payment and freeze
needed to be mixed (e.g. to avoid creating a refund transaction that was frozen).
The type
field is now part of the Output
, and may be extended in the future.
Multiple Talos (setup interface) bug fixes
The setup interface had a few issues, where some field would be empty when
run in a particular way, making navigating between menus impossible.
Those issues have been fixed and the interface now works as expected on all devices.
Agora will now dynamically export its symbol
Agora now use the export-dynamic
linker option by default, which should result
in proper stack traces on Alpine Linux (and potentially other platforms),
at the cost of slightly bigger binary. Stripping the binary will still work.
v0.8.1: Always enable TRACY_ON_DEMAND
This is an internal fix that might reduce memory usage for some clients.
v0.8.0: Random seed correction, sorted transactions, RBF
Notable changes since last release (v0.7.1):
- Well known keypairs have been updated (this affect users running test networks);
- An intermittent error in UTXODB will no longer be silence, instead the node will properly report it;
- Nodes will now replace transactions in their TxPool if it fulfill certain conditions (e.g. higher fee);
- Random seed calculation was wrong (involved an extra
Hash.init
parameter) and has been fixed; - Transactions will now sort their inputs and outputs;
- Ledger will now do a full reset if the validator set is empty, regardless of the UTXOSet being non-empty;
v0.7.1: Improved logging for nomination
This release mainly contains enhancements on logging during the nomination phase,
along with a couple internal improvements.
v0.7.0: Major SCP upgrade
Changes since v0.6.1:
- SCP has been upgraded from v11.2.0 (2019-06-26) to v16.0.0 (2021-04-08).
v0.6.1: Minor CI fix on tags push
This release fixes a minor issue that triggered when a tag was pushed.
One of the test would previously fail to run because it expected a different git object.
v0.6.0: Absolute PreImage offsets, greatly improved Flash API, transaction fees
Notable changes since the last release:
- Validator now authenticate themselves upon connecting to one another;
- The random seed algorithm has been changed to be simpler;
- The node hashing algorithm has been changed to be stable at a given height/state;
- Many bugs in the shutdown procedure have been fixed, and things should never hang now;
- The consensus protocol now supports a minimum fee;
- Default development compiler is now LDC 1.26 (LDC 1.25 works for building, but not in unittest mode);
- Windows builds have been disabled due to limitations in the CI memory capacity;
- PreImages now uses absolute index (height) instead of relative index (relative to enrollment);
- The Flash layer now supports managing multiple keys from the same node;
- It is now possible to list flash channels through the API;
- The node now exposes 4 config parameters to control and limit transactions propagation;
- Flash: Settlement is now always published after timeout is reached;
- Talos, the setup interface, is now integrated in Agora and can be started with
--initialize=address_to_bind
; - The API now allows to get detailes informations about a list of Flash channels;
- The Flash control API can now be configured to bind to a specific address/port;
- Rules for nomination has been improved to take fees into account and better handle time differences;
- Loggers can now be reconfigured dynamically through the admin interface;
- Nodes will now prioritize their own Enrollment instead of waiting to hear back from other nodes;
- DataPayload now uses Base64 for the REST API;
DataPayload.data
was renamed tobytes
;- SCP is now built with clang++ on all platforms;
- The random seed check no longer mistakenly uses the node state over the block state;
v0.5.0: Fixed nomination timer, improved flash API
- Network discovery period is now configurable (
node.network_discovery_interval_secs
); - Nomination interval is now configurable (
validator.nomination_interval
, in seconds); - Nomination interval is now 5s by default, up from 1s; this should improve liveness;
- Flash can now use a registry;
- Flash API now includes
onRequestedChannelOpen
to query if a node will accept a channel open; - Fixed a race condition preventing envelopes with valid signature to be accepted after externalization;
- Periodic catchup will now longer ask for signatures from slashed nodes;
- Flash:
changeFee
was only implemented in test, moved to production; - Vanity miner now supports Bech32, and well-known keypairs have been changed accordingly;
- The node will now stop nominating as soon as it starts shutting down;
v0.4.1: Minor build script fixes
Fixes an issue with the build script that led to the version being rendered incorrectly.
v0.4.0: Configurable logger, readable SQL databases
- UTXO set is now stored in
utxo
database, validator set invalidator
table; - Most tables now use text fields instead of binary ones;
- UTXO's
pubkey_hash
field is now calledpubkey
; - Nomination protocol now takes into account missing validator pre-images;
- Some log messages have been cleaned up to be less confusing / alarming;
- Loggers can now be configured individually in the config file;