Skip to content

Releases: hive-engine/hivesmartcontracts

Hive Engine - Partial proposeRound functionality

16 Jun 17:04

Choose a tag to compare

Allows for proposing witnesses to continue proposing for the current round after the deadline if they have a correct hash. Will rotate out a witness from the schedule that did not have a signature. This is not a consensus breaking change, it should help prevent missing blocks.

What's Changed

  • add transferOwnership emit to nft.js, tokens.js by @AlexTrapp in #105 (This contract change was deployed prior to this release)
  • Fix genesis hash, add test by @eonwarped in #110 - This fixes an issue on genesis block handling that allows nodes to sync from the beginning.
  • Subscription to allowList by @Bamlolx in #106 (This contract change was deployed prior to this release)
  • sanitize quantity in tokens.js #100 by @AlexTrapp in #109
  • use minified files for testing, minify files automatically on test by @eonwarped in #111 (This contract change was deployed prior to this release)
  • Allow for partial proposeRound and rotate out witnesses without signature by @eonwarped in #112
  • simplify custom json send to round proposition handler by @eonwarped in #113
  • Fix witness multi broadcast in p2p plugin by @eonwarped in #114
  • fix partial broadcast case again while not having multiple broadcasts by @eonwarped in #117

Full Changelog: ivm_v1.1.0...ivm_v1.1.3

Hive Engine - [Consensus] Resource Manager contract for transaction fees

22 May 00:06

Choose a tag to compare

Adds a mechanism to manage hive engine transaction fees. This will come into effect on a transition block roughly scheduled at around 10am EST on 5/28/2025. It will allow for one free transaction per user per block. After, every market op after the first transaction will deduct 0.001 BEED. Also, after the transition there will no longer be a 20 tx limit for marketpools or market actions. The motivation for this is that there are already fees on this, and should encourage liquidity and market efficiency between the various market contracts.

This is a mandatory upgrade that everyone running a node should update to in order to stay within consensus. The transition block is scheduled for .

What's Changed

Full Changelog: ivm_v1.0.0...ivm_v1.1.0

Hive Engine - [Consensus] Add count() api, use isolated_vm and other security fixes

19 Feb 18:52

Choose a tag to compare

This is a major update that swaps out vm2 with the known RCE vulnerability with isolated_vm, and applies other security patches as well.

This is a mandatory upgrade that everyone running a node should update to in order to stay within consensus.

If you are using node 20 or later, you need to use no-node-snapshot for isolated-vm: e.g.

pm2 start app.js --no-treekill --kill-timeout 10000 --no-autorestart --node-args="--no-node-snapshot"

Major Pull Requests:

  • PR #83 by @eonwarped swaps vm2 with isolated_vm
  • PR #91 by @Endecs introduces market open order limits and adds a few optimizations

Full Changelog: he_v2.0.4...ivm_v1.0.0

Hive Engine - P2P Tweaks to improve verification

07 Feb 17:38

Choose a tag to compare

This is a minor non-consensus change to P2P that will allow more time for nodes to respond with hashes, and improves round verification process significantly.

PR: #90

Full Changelog: he_v2.0.3...he_v2.0.4

Hive Engine - Per User Tx Limits (Consensus Change)

06 Feb 08:12

Choose a tag to compare

This is a minor release with a consensus change set to trigger at hive block 93100601 to impose a per user, per block transaction limit of 20. This will accept the first 20 transactions and drop any subsequent transactions.

This is a mandatory upgrade that everyone running a node should update to in order to stay within consensus.

PR: #87

Full Changelog: he_v2.0.2...he_v2.0.3

Hive Engine - Minor Dependency Update

15 Sep 03:43
729035e

Choose a tag to compare

This minor release patches a potential security vulnerability by upgrading a dependency library, and adds more github test runners. Two small PRs are included:

#71 - Add Node 22 & Ubuntu 24 To Automated Tests
#79 - Increase jayson version to 4.1.2

Be sure to run npm ci when you update your server.

Hive Engine - Fix Noisy Logs

24 Feb 04:29

Choose a tag to compare

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

20 Feb 04:56

Choose a tag to compare

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)

12 Jul 02:45
c842167

Choose a tag to compare

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 the find and findOne 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.
    image
  • Two new log events have been added: witnessMissedRound and witnessDisabledForMissingTooManyRoundsInARow
  • 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

15 May 21:21
62c761c

Choose a tag to compare

This is a small fix to resolve problematic queries hitting our RPC servers.

The following PRs are included:
#25 - config to example file
#26 - RPC batch size limit
#27 - fix data leak
All by @Rishi556 . Thanks!