Releases: openhive-network/hive
1.27.6
No consensus changes (No HardFork Required).
No replay required when upgrading from version 1.27.5.
Replay required from versions 1.27.4 and older.
P2P Communication Stability: Resolved an issue in peer-to-peer communication where, under rare circumstances, faulty code could cause a crash.
v1.27.5
This is a minor release: 1.27.5. It does not require a hardfork nor a hived node upgrade (although it is recommended). Upgraded nodes will require a full replay.
Most of changes is specific to API nodes improvements like also this version is required by HAF node.
- Hive/Blockchain features/improvements
- Hardfork 28 changes (note: date in code is a placeholder HF28 date, likely to change in the future):
- Multiple recurrent transfers for same sender/receiver pair: https://gitlab.syncad.com/hive/hive/-/merge_requests/870
- Tests and fix (enabled at HF28) related to bad vests/hive price rounding that lead to improper calculations at very early hardforks: https://gitlab.syncad.com/hive/hive/-/merge_requests/901
- Account history API improvements (defines an explicit operation filter for API calls): https://gitlab.syncad.com/hive/hive/-/merge_requests/898
- All condenser API methods return result sets using the JSON legacy form: https://gitlab.syncad.com/hive/hive/-/merge_requests/964
proposal_pay_operation
(virtual operation) uses less space (unneeded fields have been removed): https://gitlab.syncad.com/hive/hive/-/merge_requests/973- Ability to specify some chain parameters in non-mainnet builds in order to simplify testing: https://gitlab.syncad.com/hive/hive/-/merge_requests/888
- Fix bugs related to fc logger (file appenders):
- Fix random crash at hived exit: https://gitlab.syncad.com/hive/hive/-/merge_requests/990
- The auto-generated block_log.artifacts file has a new format and supports interruption and better consistency validation:
- Improve validation of snapshot consistency (improved validation):
- https://gitlab.syncad.com/hive/hive/-/merge_requests/913
- https://gitlab.syncad.com/hive/hive/-/merge_requests/919
- loading a snapshot automatically wipes any old shared memory file (previously the loading aborted with an error message): https://gitlab.syncad.com/hive/hive/-/merge_requests/969
- Resource constraint (RC) code moved closer to the chain code, slightly reducing memory footprint, making it more core-code compliant, and iteratively preparing for RC to be part of consensus in the future:
- In order to speed up file IO, hived has a new dependency: uring library https://gitlab.syncad.com/hive/hive/-/merge_requests/968
- Code cleanup:
- Removed legacy operation classes & related code: https://gitlab.syncad.com/hive/hive/-/merge_requests/923
- Removed support for unused automated actions: https://gitlab.syncad.com/hive/hive/-/merge_requests/938
- Hardfork 28 changes (note: date in code is a placeholder HF28 date, likely to change in the future):
- New beekeeper tool that safely holds customer keys and signs Hive transactions without a need to directly access private keys:
- https://gitlab.syncad.com/hive/hive/-/merge_requests/902
- https://gitlab.syncad.com/hive/hive/-/merge_requests/929
- Beekeeper is directly accessible from JS environments (e.g. web browser): https://gitlab.syncad.com/hive/hive/-/merge_requests/976
- DevOps/CI improvements:
- Common job definitions used across several Hive repos: https://gitlab.syncad.com/hive/hive/-/merge_requests/765
- Mirrornet conversion can be done automatically: https://gitlab.syncad.com/hive/hive/-/merge_requests/877
- Tests improvements:
- Unified unit tests startup by sharing regular hived code inside Boost Unit Test framework: https://gitlab.syncad.com/hive/hive/-/merge_requests/948
- Shared tools/test code across HAF repo: https://gitlab.syncad.com/hive/hive/-/merge_requests/892
- Thorough tests specific to Account History API: https://gitlab.syncad.com/hive/hive/-/merge_requests/928
- Improved tests related to decline_voting_rights behavior
- Dedicated test scenarios for verifying account recovery system https://gitlab.syncad.com/hive/hive/-/merge_requests/885
- Dedicated test scenarios for power up https://gitlab.syncad.com/hive/hive/-/merge_requests/911
- Dedicated test scenarios for limit order create: https://gitlab.syncad.com/hive/hive/-/merge_requests/927
and more (to be supplemented soon)
v1.27.4
Warning: this update changes hived state format and requires hived node replay, if you are using version 1.27.3 or earlier.
- General notes: upgrade to Ubuntu 22.04 as base supported OS: https://gitlab.syncad.com/hive/hive/-/merge_requests/838
- New features:
- new virtual operations emitted: https://gitlab.syncad.com/hive/hive/-/merge_requests/332
- prepare code for new Hardfork 28
- prerequisites for strict matching of Hived data structures to the shared_memory.bin and snapshot contents: https://gitlab.syncad.com/hive/hive/-/merge_requests/784
- Hived bugfixes:
- fixed shutdown problems:
- while executing broadcast_transaction_synchronuous: https://gitlab.syncad.com/hive/hive/-/merge_requests/812
- when --exit-before-sync was used: https://gitlab.syncad.com/hive/hive/-/merge_requests/833
- plugin/index state is more strict verified (Issue #423): https://gitlab.syncad.com/hive/hive/-/merge_requests/772
- fixed cli_wallet shutdown problems leading to random failure: https://gitlab.syncad.com/hive/hive/-/merge_requests/726
- elimination of custom fc::uint128 implementation (standard builtin GCC type is used): https://gitlab.syncad.com/hive/hive/-/merge_requests/804
- silent truncation of fixed_string is eliminated (what could lead to silent modification of broken operations in transaction - now they will explicitly fail): https://gitlab.syncad.com/hive/hive/-/merge_requests/794
- Fixed transaction counter in AH RockDB plugin (to improve reporting): https://gitlab.syncad.com/hive/hive/-/merge_requests/850
- Fixed impacted account collection (leads to AH collection) for
comment_payout_beneficiaries
: https://gitlab.syncad.com/hive/hive/-/merge_requests/844 - Account History API better handles history data coming from reversible blocks: https://gitlab.syncad.com/hive/hive/-/merge_requests/866
- RC mana can't go under zero anymore: https://gitlab.syncad.com/hive/hive/-/merge_requests/863
- fixed shutdown problems:
- Python regression test improvements:
- https://gitlab.syncad.com/hive/hive/-/merge_requests/811
- https://gitlab.syncad.com/hive/hive/-/merge_requests/683
- https://gitlab.syncad.com/hive/hive/-/merge_requests/813
- database_api suite extended: https://gitlab.syncad.com/hive/hive/-/merge_requests/516
- dedicated performance test suite for recurrent transfers to show corner cases: https://gitlab.syncad.com/hive/hive/-/merge_requests/823
- enhanced suite related to condenser_api, transaction_status_api https://gitlab.syncad.com/hive/hive/-/merge_requests/816, https://gitlab.syncad.com/hive/hive/-/merge_requests/795
- created tests specific to decline_voting_rights and proxy operations: https://gitlab.syncad.com/hive/hive/-/merge_requests/851, https://gitlab.syncad.com/hive/hive/-/merge_requests/815
- new tests for market_history_api: https://gitlab.syncad.com/hive/hive/-/merge_requests/826
- enhanced tests specific to recurrent transfers: https://gitlab.syncad.com/hive/hive/-/merge_requests/807
- Low level unit tests extended by suite of tests covering AH calls (prerequisites to internal code cleanup/refactoring, which will need good test base):
- Devops/workflow automation:
- dockerized setup fixes/simplifications (mostly solved permission issues):
- Simplify replay of test node and use GitLab cache to lower resource usage during testing: https://gitlab.syncad.com/hive/hive/-/merge_requests/801
- Official Hive images can be published by automatic job: https://gitlab.syncad.com/hive/hive/-/merge_requests/868
v1.27.0
Restore the prior timeshare/backup witness scheduling behavior.
Due the nature of this change it is a hardfork release.
v1.26.1
Optional bugfix release: snapshot dump and load extended by generic_index::_next_id to prevent update_proposal failures on nodes configured using snapshot.
v1.26.0
v1.25.0
Consensus changes
- new operation and API to enable recurrent transfers
- new operation and API to convert Hive to HBD + https://gitlab.syncad.com/hive/hive/-/merge_requests/215 + https://gitlab.syncad.com/hive/hive/-/issues/129
- expire old governance votes + https://gitlab.syncad.com/hive/hive/-/merge_requests/172 + https://gitlab.syncad.com/hive/hive/-/merge_requests/174 + https://gitlab.syncad.com/hive/hive/-/merge_requests/181 + https://gitlab.syncad.com/hive/hive/-/merge_requests/195 + https://gitlab.syncad.com/hive/hive/-/merge_requests/213
- changes to curation window and curation rewards calculation + https://gitlab.syncad.com/hive/hive/-/merge_requests/204
- only pay interest on HBD held in savings account + https://gitlab.syncad.com/hive/hive/-/merge_requests/203
- don't allow voting on expired proposals
- allow shortening the end date of a proposal
- re-allow vote operation for already paid posts
- hardfork 25 set trigger at June 30, 2021 at 14:00 UTC
New command-line options
Bug fixes
- fix
condenser_api.get_key_references
not returning keys for claimed accounts - fix duplicate operations in
get_account_history
due to operations being flushed to history db at wrong time - fix duplicate operations in
get_account_history
due to reversion of last irreversible block on startup - fix #139 enum_virtual_ops gives also non-virtual ops
- fix #96 get_account_history not returning expected number of operations
- restore use of the
unlinked_index
cache which holds blocks that aren't currently linkable to the head block + https://gitlab.syncad.com/hive/hive/-/merge_requests/226 - remove unavailable item from active sync requests, fix node stuck issue
- account history operation filter needs to be 64bit not just in filter enum
- fix libreadline static link with cli_wallet + https://gitlab.syncad.com/hive/hive/-/issues/143
- remove
shared_memory.bin
when--force-replay
flag is specified - fix rounding errors in proposal payouts and maintenance window timings
- fix for recently introduced replay problem caused by empty recovery account
- fix unstable behavior related to --exit-after-replay flag
- fix crash when node started with account-history-rocksdb plugin configured without a blockchain directory created
- fix get open orders cli_wallet command threw an exception when casting asset type
- fix chain-id related problem causing to fail testnet configuration when custom chain-id has been passed through hived commandline
- fix for bug in new recurring transfers operation
- Fixed issue #162: hived crash when invoked with --resync-blockchain and block_log/sharedmem files do not exist
- Fixed assertion failure during early block evaluation (caused by improper Last Irreversible Block update)
New API calls
Miscellaneous changes
- allow the timestamps printed in log messages to be formatted in several different ways
- improve error message on bad call to fc::static_variant::get<> method
- extension in 'update_proposal' is internally created
- get_config.cpp is fully generated in cmake, by reflecting config.hpp + https://gitlab.syncad.com/hive/hive/-/merge_requests/192
- change
database_api.is_known_transaction
method signature to matchaccount_history_api.get_transaction
- locking account also clears memo_key (this will clear memo_key for hive.fund)
- python_tests/cli_wallet can now run just one or selected tests matching given substring with
--test-filter substring
- added mechanism and macros to allow tests to require concrete assertion
- Add proposal_id to the proposal_pay virtual operation
- reduce block_log locking and add get_block_range api call
- add changed_recovery_account vop after an account recovery is executed
- add new virtual operations useful for financial accounting
- changed method of tests <=> wallet_cli communication
- governance vote expiration is set to 5 days for testnet
- when connecting to peers, always send Hive chain id
- simplify fc logging syntax
Miscellaneous code and documentation cleanup
- support compilation under Ubuntu 20.04 LTS, tested with boost 1.71 and boost 1.65
- gcc-10 compiler fixes
- remove deprecated LOW_MEMORY_NODE and CLEAR_VOTES settings
- remove deprecated STORE_COMMENT_CONTENT setting
- remove deprecated MIRA support
- remove redundant -std compiler options from cmake, refactor to one location
- If '--force-replay' flag is used, then
--replay-blockchain
flag is implied - encapsulate state object members
- add new group of replay-based tests. snapshot and vops tests
sps_remove_threshold
renamed tocurrent_remove_threshold
and placed in dgpo- removed condenser_api::api_comment_object and condenser_api::discussion datatypes
- Minor improvements to docs, scripts and configs
The merge to master containing all changes since the last official update is here: https://gitlab.syncad.com/hive/hive/-/merge_requests/262/diffs
v1.24.8
Release v1.24.8 (fixes for API nodes).
Eclipse
Hardfork date set for Oct 6th, 2020.
New command-line options:
--dump-snapshot snapshot_name
--load-snapshot snapshot_name
--snapshot-root-dir directory_for_storing_snapshots
(creates directory if it doesn't already exist)--exit-after-replay
Node management improvements
- Snapshot dump/load: A node’s state information can be stored to disk, then used to setup a new node, without requiring a time-consuming replay of the blockchain. Snapshots are stored in the snapshot root directory as a subdirectory with the snapshot name supplied when creating the snapshot. By default, the snapshot root directory is a directory called snapshot in the application's data directory.
- Replays can be stopped via
Ctrl-C
and resumed. To resume an interrupted replay, relaunch hived, and hived will auto-resume the replay if the state's headblock is less than the block_log's headblock.
Performance Improvements
- A full replay currently takes 16-18 hours. Previously this took several days.
- Huge reduction in memory requirements. A fully featured API node now only requires 16GB RAM.
- New virtual operations to supply more information to hivemind and other microservices:
Governance changes
- Hive must be staked for 30 days before it counts towards witness and proposal voting tallies.
Updates to Decentralized Hive Fund
steem.dao
account has been replaced byhive.fund
account: https://gitlab.syncad.com/hive/hive/-/issues/25- Hive in the treasury fund (
hive.fund
) will automatically be converted over time to Hive-backed Dollars (HBD). https://gitlab.syncad.com/hive/hive/-/merge_requests/97 - The HBD in the decentralized hive fund doesn't count towards the debt ratio https://gitlab.syncad.com/hive/hive/-/merge_requests/97
- Proposals can be updated after creation time using
update_proposal
operation. Changes include title changes and lowering the proposal payout request. https://gitlab.syncad.com/hive/hive/-/merge_requests/48 - Increased creation fee for long running proposals, the base price (10 HBD) increases by 1 HBD per extra day past 60 days https://gitlab.syncad.com/hive/hive/-/merge_requests/48
- Fixed bug in descending order in DHF API (another regression from when worker proposal code was originally merged in): https://gitlab.syncad.com/hive/hive/-/issues/31
- Restored support for last_id parameter needed for proposal pagination (this was lost when Steemit merged in the original worker proposal code): https://gitlab.syncad.com/hive/hive/-/issues/32
- Proposal votes are summed up and available via API queries before a proposal becomes active (previously this data was only available after the proposal became active): https://gitlab.syncad.com/hive/hive/-/issues/33
Miscellaneous changes
- Airdrop for accounts voted for via proposal system.
- Major rebranding, replace all Steem/SBD references with Hive/HBD
- Updated code to allow for major release version changes (e.g. 0.23.0 → 1.24.0)
- Chain id changed from 0x0000… to 0xBEEABODE…
- Improved
validate_invariants
to detect any future code changes that might leave the ledger in an inconsistent state.
Long-standing bug fixes
- Fixed bugs in node shutdown (by
Ctrl+C
) that led to intermittent crashes at shutdown. - Fixed
fc
bug unpacking flat sets that resulted in bug when restoring a snapshot.
And much more
See https://gitlab.syncad.com/hive/hive/-/releases for details on minor version releases.
v1.24.0
Final fix in p2p-plugin