Release 2.5.0.0
This release introduces a hard fork that activates at height 812970, approximately 2021-11-17 14:00 UTC. You will need to make sure you have upgraded your miner before this time to connect to the network.
This protocol upgrade includes a number of improvements, laying the groundwork for the switch to HDD-dominated mining in 2.6. After the fork, SPoRA solution candidates have to be "packed" such that they can be identified as part of a unique replica. Additionally, the protocol will now create some entropy on every mining attempt. Miners have to carry it on throughout the process, further strengthening the requirement to keep data close to the computation power.
Note for the miners: the upgrade does not make hard drives the most cost-efficient medium (we plan to make this transition in the next major release).
Note for the miners: the new mining algorithm operating with the packed data and entropy does not take effect immediately after the fork but gradually replaces the existing algorithm over time.
Note for the users: starting from the fork block, the protocol would no longer recognize new data that is not split in a particular way. Specifically, all chunk sizes have to equal 256 * 1024 bytes unless they meet one of the three requirements:
- the chunk is the last or the only chunk of its transaction;
- the chunk is the second last chunk of its transaction, and together with the last chunk, they exceed 256 KiB;
- the chunk size is larger than its Merkle proof (data_path).
The change is compatible with the major ecosystem clients, like arweave-js, arweave-stream-tx, or goar.
Note that it would still be possible to submit a transaction with a data_root computed from a wrong split, but the chunks not meeting the criteria mentioned above won't be accepted by the nodes.
Furthermore, every TX requires a fee covering the smallest multiple of 256 KiB bigger than or equal to its data_size after the fork.
The difficulty-based price adjustment is re-enabled in 2.5. The price is recalculated every 50 blocks; however, we introduce a one-time change cap to eliminate the effects of short-term difficulty and token price fluctuations.
Furthermore, an accelerated difficulty adjustment is used at the fork block, similar to the mechanism used at 2.4, because a significant network difficulty drop is possible. However, the transition is gradual, so we expect a relatively small difficulty change. The node will migrate the historical data and pack the incoming chunks to have them ready for mining.
Finally, the floating-point math is no longer present in the protocol after the fork, simplifying alternative clients' development.
Upgrade instructions
N.2.5.0.0 comes with the prebuilt binaries for the Linux and Darwin x86_64 platforms. arweave-2.5.0.0.linux-x86_64.tar.gz
works at least on Ubuntu 20 and CentOS 8. To run on Ubuntu 18, grab arweave-2.5.0.0.ubuntu18-x86_64.tar.gz
. CentOS 7 is not supported.
Download the corresponding archive and unpack it:
tar -xzf arweave-2.5.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 on the list, check README for how to build the miner from sources.
If you want to run the miner from the existing Git folder, upgrade Erlang to version 23 or 24 and execute the following command:
git fetch --all --tags && git checkout -f N.2.5.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 [email protected].