Highlights
- Miscellaneous bug fixes
- Some slight performance optimizations
- Additional tests and fixes to existing tests
- Work to implement new packaging pipeline
- Initial backend support for compact certificate development
Changes
- Agreement
- Enhancements
- Add consensus-driven agreement filter timeout
- Vote validation error refactor
- Deprecate algolambdamsec environment variable
- Enhancements
- Algod
- Bug Fix - exit algod with a non-zero in case of a startup error
- Catchup
- Enhancements
- Minor catchpoint REST handler error code cleanup
- Improve RestoringFromCatchpointFile benchmark precision
- Bug Fix - ensure syncStartNS is managed correctly across catchpoint file writing
- Add detailed error logging in case of failed blocks download
- Enhancements
- Crypto
- Enhancement - add more inputs into hashCoin() for better hygiene
- General
- New Features
- Core crypto primitives for compact certificates
- Added a transaction type to store compact certificates
- Bug Fix - modify the error messages for parseIntcblock to distinguish from parseBytecblock
- New Features
- Goal
- Enhancements
- Fix inconsistencies in goal asset command
- Add goal account info command
- Output error when 'goal node stop' is run on invalid/non-existing directory
- Bug Fix - Avoid printing control characters from goal
- Enhancements
- Ledger
- New Feature - commit to Merkle tree of online participants in block header
- Enhancements
- Implement tracking of top-N online accounts in the ledger
- Add metrics for the various ledger components
- Cache the most recent Seed/Circulation calls to reduce pressure on ledger
- Remove the Lookup from the ledgerForEvaluator interface
- Decouple database round and acctupdate round
- Fix typos in ledger package
- Optimize listCreatables implementation
- Repack merkle trie pages before flush
- Extend account lookup to include validity range
- Bug Fixes
- Calculate normalized balance using genesis proto
- Add syncMu to AlgorandFullNode OnNewBlock
- Transaction Pool
- Bug Fixes
- Refactor AssembleBlock error
- Limit txpool size by transaction count rather then transaction groups count
- Correct the accounting of transactions in checkPendingQueueSize
- Correctly account for bloom filter binary marshaling size
- Bug Fixes
- Network
- Enhancements
- Remove expected ReadError events
- Add ASCII filtering for remote requests logged data
- Enhancements
- REST API
- New Feature - new endpoint /genesis.json
- Enhancements
- Don't return an error when requesting the same catchpoint multiple times
- Add new line characters allowing proper Markdown formatting when docs are generated from this source file
- REST docs update: /v1/account/{addr}/transactions
- Bug Fixes
- Add versions endpoint to spec, fix versions model objects
- Allow max and assetIndex to be optional
- Return 404 if v1/transaction/{txid} doesn't find the txn.
- Set content type header for health endpoint
- Telemetry
- Bug Fixes
- Correct Telemetry uploading message reported in node.log
- Change telemetryConfig from global variable to a member of the logger
- Bug Fixes
- Tools
- Enhancements
- Added a new recipe for performing network disruption tests.
- Simplifed dryrunning and debugging group transactions
- Add support for algorelay deleting unused SRV and DNS entries
- Add txn.Accounts and txn.ApplicationArgs support to tealdbg
- Improve goal node start error reporting in case of algod errored
- Tealdbg: listen for upcoming spinoff connections
- Netgoal general templates
- Bug Fixes
- Improve network template validation
- Enhancements
- Tests
- New Feature - performance testing with realilistic network performance
- Enhancements
- Add concurrent read and write test from database table
- Add a unit test to confirm BinaryMarshalLength correctness
- Added more deb and rpm package tests
- Coverage tests for ledger/acctupdates
- Cleanup buggy dead code
- Implement e2e test for tealdbg
- Increase code coverage of tealdbg unit tests
- Tweak the mainnet-model recipe
- Added auth middleware tests
- Added debugger coverage test
- Add a benchmark to test restoring from catchpoint performance
- Add unit tests for equal functions in teal.go
- Add a benchmark for writeCatchpointStagingBalances
- Improve db insertion benchmark - add ordered insertions
- Add additional ledger tests
- Updates to support testing TEAL application size
- Bug Fixes
- Extend expect timeout when checking account balance
- Fix random failure in goalNodeTest.exp
- Fix random failure in goalAppAccountAddressTest.exp
- Fix unreliable network unit test TestSlowPeerDisconnection
- Fix data race in TestPing unit test
- Remove close from eof pattern match to remove error message
- Test for process return in expect tests
- Other
- New Feature - add support for building native Windows binaries
- Enhancements
- Update new issue template
- Update rpm packaging to allow for more scenarios
- Update deploy scripts to reflect current deploy strategy
- Formatting updates with make sanity
- Added S3_SOURCE env var to specify source of packages for signing
- Implement mule packaging pipeline
- Remove devtools binaries from algorand package (rpm)
- Remove hardcoded dependency package names from package scirpts
- Fix pathing issue to installer directory in packaging scripts
- Simplify mule signing task
- Update mule docs for new pipeline
- Add support for Windows compilation on travis
- Remove unused dockerfiles
- Added package-upload mule task
- Create mule tasks for aptly, releases page and docker hub images
- Bug Fixes
- Remove commas from mule yaml files
- Revert change to grep recommended by shellcheck
- Remove Travis token, which is not needed for open source repos
- Many fixes for implementing new packaging pipeline
Protocol Upgrade
This release does not contain a consensus protocol upgrade.