Releases: hive-engine/hivesmartcontracts
Hive Engine - Minor Dependency Update
Hive Engine - Fix Noisy Logs
This minor release fixes a bit of noisy logging that can result from block fetch errors when the streamerConfig.useBlockApi
setting is true
Only a single PR is included: #64 - Remove error caused by block api fetch fail
Hive Engine - Spring Cleaning Upgrade
This major release contains multiple consensus breaking changes, including improved error handling to support Node.js 20 and some optimizations to reduce the amount of data stored on-chain. There are various new configuration options for debugging and to allow fine tuning of streaming behavior. In addition, support has been added for optionally using block_api.get_block
to fetch Hive blocks, in preparation for eventual deprecation of condenser_api.get_block
(the currently used method).
The consensus breaking change is set to trigger on Hive block 83,680,408, which is roughly Saturday March 16, 2024, mid-morning Japan time. All node operators & witnesses are required to upgrade before that time, to avoid forking from the majority network.
The following PRs are included:
#41 - Update to dual rpc on find divergent block and restore parital
#46 - [Consensus] Support Node 20
#56 - Add Mongo 7 To Test List
#57 - Add time to process request to logs
#61 - Allow for using block_api.get_block API
#62 - [Consensus] Trim execution hash when contract is called
#63 - [Consensus] Truncate json metadata to only fields we use
See individual PRs for more details. Some things of note:
morgan
version 1.10.0 has been added as a dependency to package.json, in order to provide enhanced logging- The minimum required version of Node.js has been increased to 18.17.0 (although older versions should still work for the time being)
- New configuration settings added in config.example.json (see documentation in #61 for usage information):
"hashVerificationNode": false,
"streamerConfig": {
"antiForkBufferMaxSize": 2,
"maxQps": 1,
"lookaheadBufferSize": 5,
"useBlockApi": false
}
Credit goes to @Rishi556 and @eonwarped as the major contributors to this release.
Hive Engine - Expanded APIs, Code Clean-Up, and support for Registering Witnesses by Domain (instead of IP)
This major release contains assorted API enhancements, code clean-ups, and support for a significant witnesses contract update that will allow witnesses to register their nodes by both domain and IP via the usual witness_action.js
utility script.
This is a mandatory upgrade that everyone running a node should update to. Once the majority of witnesses have upgraded, an updated witnesses smart contract shall be deployed to make use of the new features added in this release. This will likely take place within a week of release 1.10.0 being made available.
The following PRs are included:
#17 - Supports witnesses using domains for their nodes in addition to IPs
#19 - Add MongodDB project
#28 - Api To Get Block Given Hive Block Number
#29 - Update witness_action.js typo
#30 - Restore default witness_action.js behaviour
#39 - Run Tests On Ubuntu 22
#43 - Lint Fixes
#48 - Add Missed Round Log
#49 - Witness Disable Log And Test
Some things of note:
- A new RPC API method has been added:
getBlockInfoByHiveBlock
- Support for the MongoDB
project
field has been added to the RPC API so that projections can be used with thefind
andfindOne
API queries. - A new setting
rpcConfig.allowArbitraryProject
has been added for config.json, with a default value of false. See #19 for more details on MongoDB project + this setting.
- Two new log events have been added:
witnessMissedRound
andwitnessDisabledForMissingTooManyRoundsInARow
- NODE_DOMAIN has been added as an optional setting in the .env file for witnesses. This provides an alternative to registering a witness by IP. Note that only one of NODE_DOMAIN or NODE_IP may be used (they are mutually exclusive).
A lot of credit goes to @Rishi556 who prepared the majority of these PRs. A couple were also contributed by @forkyishere . Thanks guys!
Hive Engine - RPC Server Improvements, Batch Limits
Hive Engine - Performance Improvements & Bug Fixes
This major release contains a consensus breaking bug fix for Hive account name validation, various performance improvements, API enhancements, and increased configuration flexibility. The consensus breaking change is set to trigger on Hive block 74,391,382, which is roughly Friday, April 28, 2023 early afternoon Japan time. All node operators & witnesses are required to upgrade before that time, to avoid forking from the majority network.
The following PRs are included:
#10 - Improve performance of light nodes
#16 - Get Block Range API
#18 - Remove Unused Socket Dependencies
#21 - Fix error messages, Fix 1k limit
#22 - Fix issue with consecutive dashes in account names
See individual PRs for more details. Some things of note:
- Unused library dependencies, specifically
socket.io
andsocket.io-client
, have been removed from package.json. - A new RPC API method has been added: getBlockRangeInfo
- The structure of config.json has been altered slightly:
Hive Engine - P2P Error Handling Enhancement
Hive Engine - Housekeeping and Library Updates
This minor release updates some Javascript library versions and adds a few quality of life improvements.
PRs included (all by @Rishi556 ):
#3 - Change Default Node In Registering For Divergence Check
#4 - Bump minimum node version
#5 - Websockets Support And Dual RPC Support
#6 - Uses Github Actions To Run Automated Tests
See individual PRs for more details. A few things of note:
- The minimum required version of Node.js has been increased to 16.15.0
- New configuration settings in config.json:
"rpcWebsockets" : {
"enabled" : true,
"port" : 5002
}
- @hiveio/dhive library updated to version 1.2.4
- jayson library updated to version 4.0.0
Hive Engine - RPC Server Improvements
This release is the first coming from the new repository that is focused on hive. It adds a new feature that will error any JSON RPC find requests with large offsets (configurable). Also adds logging capabilities to RPC requests.
If you are currently tracking the older steemsmartcontracts repository, this is the steps to transition to the new:
git remote add hive [email protected]:hive-engine/hivesmartcontracts.git
git remote remove origin
git fetch hive
git checkout main
git log
# verify that the last commit is in sync with hive/main or the latest tag
After that can carry on as usual.
PRs included: hive-engine/steemsmartcontracts#162 by @Rishi556