Skip to content

Release 2.3.0.0

Compare
Choose a tag to compare
@ldmberman ldmberman released this 14 Dec 20:32
· 638 commits to master since this release

This release introduces a hard fork that activates at height 591140, approximately 2020-12-21 11:00 UTC. You will need to make sure you have upgraded your miner before this time in order to connect to the 2.3 network.
Most of the work put into this release is preparation for SPoRA - the new consensus mechanism.

New features and improvements

  • The difficulty of mining on alternative recall chunks grows linearly as a function of the alternative sequence number. It follows the pattern applied in SPoRA. Link.
  • A sync_jobs configuration parameter is added to control the intensity of data syncing. The node now runs two jobs by default. Consider increasing it on the new nodes and decreasing once you replicate the desired amount of data.
  • Block application is reworked. The new version maintains a cache of uncle blocks to efficiently validate the work component of a block for the fast and DoS-resistant block propagation in the network. The update is especially relevant for validating blocks that are not on top of the longest chain currently known to the node.
  • The data of v1 transactions is moved to the new index. The planned consensus mechanism incentivizes fast random access to past data. Therefore, it is crucial to have quick access to the historical v1 data.
  • The benchmark is made more representative by running a node. Run it via ./bin/benchmark.
  • The node can run under limited disk space now. Once there is little available space left, the node stops syncing data and begins cleaning up older headers to free up space for the new block and transaction headers.
  • The transaction blacklist is reworked. The new blacklist is more scalable, supports v2 data, allows to fetch blacklisted transactions from external sources, and automatically removes already stored blacklisted data. Additionally, the change introduces a whitelist.
  • The v2 chunk data is migrated from the individual files to RocksDB, see the commit for more details.

Bug fixes

  • A bug is fixed where the node would never attempt to sync a historical transaction if it crashed right after syncing the corresponding block header.
  • A bug where the node would not send new blocks to the configured webhooks is fixed.
  • The broken requests_per_minute flag works again.

Upgrade instructions

N.2.3.0.0 comes with the prebuilt binaries for the Linux and Darwin x86_64 platforms.

Download the corresponding archive and unpack it:

tar -xzf arweave-2.3.0.0.linux-x86_64.tar.gz

It makes sense to unpack it inside a dedicated directory. You can always move this directory around, but the miner may not work if you move only some of the files. The weave data would, by default, be stored in this directory, too, but it can be overridden using the data_dir command-line argument.
The archive contents look like this:

bin/  data/  erts-10.3/  lib/  releases/

To run the miner, execute ./bin/start . See the mining guide for more details.
If your OS/platform architecture is not in the list, check README for how to build the miner from sources.

If you want to run the miner from the existing Git folder, execute the following command to upgrade:

git fetch --all --tags && git checkout -f N.2.3.0.0

You can now run the miner using the arweave-server script.

Support

For more details on how to run a mining node, please see our mining guide - https://docs.arweave.org/info/mining/mining-guide. If you have any issues upgrading or would like to know more about the release, feel free to reach out to us in the #mining channel on Discord Arweave Dev Talk server (https://discord.gg/DjAFMJc) or email us at team@arweave.org.