This is the repository for the official Erlang implementation of the Arweave protocol and a gateway implementation.
Arweave is a distributed, cryptographically verified permanent archive built on a cryptocurrency that aims to, for the first time, provide feasible data permanence. By leveraging our novel Blockweave datastructure, data is stored in a decentralised, peer-to-peer manner where miners are incentivised to store rare data.
Download and extract the latest archive for your platform on the release
page, then run the included
bin/start script to get started.
For more information, refer to the mining guide.
Building from source
- Erlang OTP v21+, with OpenSSL support
- GCC or Clang
- GNU Make
- SQLite3 headers (libsqlite3-dev on Ubuntu)
- GNU MP (libgmp-dev on Ubuntu)
$ git clone --recursive https://github.com/ArweaveTeam/arweave.git $ cd arweave $ ./rebar3 as prod tar
You will then find the gzipped tarball at
Running a gateway
To run a gateway, consult the gateway setup guide.
Make sure to have the build requirements installed.
Clone the repo and initialize the Git submodules:
$ git clone --recursive https://github.com/ArweaveTeam/arweave.git
Running a node locally
Running the tests
Running a shell
bin/shell launch two connected Erlang VMs in distributed mode. The
master VM runs an HTTP server on the port 1984. The slave VM uses the
port 1983. The data folders are
respectively. The tests that do not depend on two VMs are run against the
See CONTRIBUTING.md for more information.
You can find documentation regarding our HTTP interface here.
The Arweave project is released under GNU General Public License v2.0. See LICENSE for full license conditions.