Skip to content

Strongpool/arweave

 
 

Repository files navigation

Arweave Server

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.

Getting Started

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

Requirements

  • Erlang OTP v23+, with OpenSSL support
  • GCC or Clang
  • GNU Make
  • CMake
  • 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 _build/prod/rel/arweave/arweave-x.y.z.tar.gz.

Running a gateway

To run a gateway, consult the gateway setup guide.

Contributing

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

$ bin/start-dev

Running the tests

$ bin/test

Running a shell

$ bin/shell

bin/test and 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 data_test_master and data_test_slave respectively. The tests that do not depend on two VMs are run against the master VM.

See CONTRIBUTING.md for more information.

HTTP API

You can find documentation regarding our HTTP interface here.

Contact

If you have questions or comments about Arweave you can get in touch by finding us on Twitter, Reddit, Discord or by emailing us at team@arweave.org.

For more information about the Arweave project visit https://www.arweave.org or have a look at our yellow paper.

License

The Arweave project is released under GNU General Public License v2.0. See LICENSE for full license conditions.

About

The Arweave server and App Developer Toolkit.

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • C 86.0%
  • Erlang 13.5%
  • Nix 0.2%
  • C++ 0.1%
  • Shell 0.1%
  • HTML 0.1%