Releases: openhive-network/hive
1.27.7
Release notes
Minor release. DOES NOT REQUIRE hardfork yet.
Warning: this update changes hived state format and requires hived node replay, if you are using version 1.27.6 or earlier.
Configuration option changes
-
The default behavior of options has changed. Previously, an option's default value would only take effect when the
config.ini
file was generated for the first time. In that case, the file contained explicit option assignments based on their defaults. This was misleading because it was impossible to determine later whether an option was intentionally set by the user or simply left as the default.
Now, options without explicit assignments in theconfig.ini
(or in application command line argument list) have internally set default value regardless ofconfig.ini
presence. -
Changes made in the hived configuration option set:
-
Added new options specific to performance tweaks (to prevent transaction flood):
rc-flood-level
,rc-flood-surcharge
,max-mempool-size
More details can be found here: https://gitlab.syncad.com/hive/hive/-/merge_requests/1397
-
Added option to configure a block log splitting:
block-log-split
, defaults to9999
and allows to automatically split monolithic block log file into 1M block chunks.
Please note that this behavior can be troublesome if your environment has limited disk space (you need temporarily twice the size of block_log to split it).
If you want to keep old behavior (monolithic block_log), please set this option to-1
. -
Simplified usage of transaction status plugin and change its options:
- removed
transaction-status-track-after-block
, - removed
transaction-status-rebuild-state
,
Right now transaction status plugin relies only on
transaction-status-block-depth
and head block number estimation so it activates tracking automatically according to chosen depth. - removed
-
Removed deprecated hived plugins:
follows
andtags
-
Eliminated options for deprecated plugins: https://gitlab.syncad.com/hive/hive/-/issues/649
-
Changed p2p plugin options:
- removed
seed-node
in favor top2p-seed-node
- removed
force-validate
in favor top2p-force-validate
- removed
-
Changed webserver plugin options:
rpc-endpoint
option removed in favor of:webserver-http-endpoint
orwebserver-ws-endpoint
-
Changes in the set of options useful for testing:
stop-replay-at-block
has been changed tostop-at-block
which also allows to stop during p2p sync (i.e. not only during replay).exit-before-sync
option has been replaced byexit-at-block
which also allows to exit during p2p sync.- Removed debug plugin
edit-script
option
-
Functional changes
Implemented HF28 changes (even this version does not activate the Hardfork)
- Improved witness properties update (new values appeared too early) https://gitlab.syncad.com/hive/hive/-/merge_requests/1360
- Max block size configuration (by witnesses) can't exceed 2MB value: https://gitlab.syncad.com/hive/hive/-/merge_requests/1357
- Increased transaction expiration time: https://gitlab.syncad.com/hive/hive/-/merge_requests/1383
- Authority verification changes:
- owner/active/posting authorities (i.e. required by mixed operation types) can be combined in single transaction
- redundant (ineffective) signatures are allowed. See details (for both above features): https://gitlab.syncad.com/hive/hive/-/merge_requests/1420
- accept only required level of authority: i.e. using
active
authority to satisfyposting
level will be not accepted anymore.
See https://gitlab.syncad.com/hive/hive/-/merge_requests/1408 and https://gitlab.syncad.com/hive/hive/-/issues/716 for details.
- Voting power changes: https://gitlab.syncad.com/hive/hive/-/issues/609
- Eliminate vote edit limits: https://gitlab.syncad.com/hive/hive/-/issues/458
- Recurrent transfer changes:
- Allow multiple recurrent transfers targeting same account pair: https://gitlab.syncad.com/hive/hive/-/issues/382
- Fixes related to recurrence limit time: https://gitlab.syncad.com/hive/hive/-/issues/456
- Fixes related to decline_voting_rights operation: https://gitlab.syncad.com/hive/hive/-/issues/441
HF28 has been scheduled to 08. February 2025 13:00 UTC, although to make it possible another (1.28.0) version must be published. It is planned to make it backward compatible to this one (containing only version change).
New features
- Support for pruned block log. Hived configuration options allows to store blocks in local blockchain subdirectory as:
- monolithic file (as previously: single block_log file),
- split into 1M block parts what allows you to relocate files across different filesystems and symlink them in the blockchain directory
- prunned to store latest N 1M block parts (including 0 to avoid block storage at all) Block log prunning allows to save disk space, but also reduces ability to support
block_api
usage and P2P communication. The hived tool is also able to perform automatically block_log split when configuration change from monolithic to split storage. Theblock-log-split
option defaults to9999
to enable split mode in the block storage.block_log_util
tool also has been extended by support of file splitting.
- Hived API supports keep-alive connections: https://gitlab.syncad.com/hive/hive/-/merge_requests/1363
- Configuration ability preventing hived node flooding. See previously mentioned options for details.
Functional and performance improvements
- Better error handling in case of missing disk space to store shared memory file. Allows to see error at hived startup, instead of at random time when actual memory allocation failed during runtime processing. See https://gitlab.syncad.com/hive/hive/-/merge_requests/1372 for details
Bug fixes
- Fixed
api_account_object::post_voting_power
value returned by all database_api methods providing account properties (likefind_accounts
- previously hived returned incorrect data. See https://gitlab.syncad.com/hive/hive/-/merge_requests/1401 for details - Fixed operation JSON format returned by condenser_api methods: https://gitlab.syncad.com/hive/hive/-/merge_requests/1381
- Fixed
database_api.verify_account_authority
call: https://gitlab.syncad.com/hive/hive/-/merge_requests/1328/diffs?commit_id=3156ddf4bf16e2f0b4742762115651010621dac3 condenser_api.verify_account_authority
adjusted to above changes- Some DGPO properties have been updated too early: https://gitlab.syncad.com/hive/hive/-/merge_requests/1360
- Eliminated crash at resync: https://gitlab.syncad.com/hive/hive/-/merge_requests/1367
- Eliminated multi threading issues in witness plugin: https://gitlab.syncad.com/hive/hive/-/merge_requests/1268
- Hived shutdown fixes: https://gitlab.syncad.com/hive/hive/-/merge_requests/1418
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.