Skip to content

Release 2.4.1.0

Compare
Choose a tag to compare
@ldmberman ldmberman released this 18 Mar 15:40
· 610 commits to master since this release

The release's main goal is to improve the efficiency of the new SPoRA miner.

The changes include:

  • blob storage for chunks optimized for random reads tailored specifically to the miner;
  • the recall byte computation - the only mining operation on the Erlang side that takes ~100 us per chunk - is re-implemented in C;
  • Erlang VM tuning;
  • a more streamlined and configurable mining server.

Upgrade note

There is no automatic migration to the new storage, only the new data is written there. You can still mine with existing data; however, you need to sync from scratch to achieve the largest performance gain. If you run the new version with existing storage, run it with enable search_in_rocksdb_when_mining.

See the new version of the mining guide for more details on tuning the node. Also, the new storage contains sparse files - you need to account for it if you copy your data from one place to another. You can find more information about it in the guide.

Other improvements

  • Transaction processing performance is improved a bit in response to increased transaction volumes.
  • The rocksdb and chunk_storage folders can reside on their own disks now, and the node would still track the amount of available space. These folders contain all the data required during mining. E.g., a fast nvme SSD drive can be mounted to these folders while the rest of the data may be on a cheaper HDD disk.
  • A few issues with the peering logic are fixed (no more ar_bridge_update_peers_process_is_stuck logs).
  • An improvement in the block propagation logic is made where nodes re-send a block to some of the best peers who did not know the previous block at the time of the first attempt, usually when two successive blocks are mined close in time. Previously, those peers had to ask for the missing blocks themselves.
  • Serving HTML over /tx/[id]/data.html and /[id] can be optionally disabled via the disable serve_html_data command line setting.
  • The joining procedure is made more reliable to make it easier to join when the recent blocks are big.
  • The broken disk_space setting is fixed.

Upgrade instructions

N.2.4.1.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.4.1.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.4.1.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.