Giter Club home page Giter Club logo

arweave's Introduction

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

  • OpenSSL 1.1.1+
  • OpenSSL development headers
  • GCC or Clang (GCC 8+ recommended)
  • Erlang OTP v24, with OpenSSL support
  • GNU Make
  • CMake (CMake version > 3.10.0)
  • SQLite3 headers (libsqlite3-dev on Ubuntu)
  • GNU MP (libgmp-dev on Ubuntu)

To install the dependencies on Ubuntu 22 (recommended), run:

sudo apt install libssl-dev libgmp-dev libsqlite3-dev make cmake gcc g++

On some systems you might need to install libncurses-dev.

Download the repo:

$ git clone --recursive https://github.com/ArweaveTeam/arweave.git
$ cd arweave

Increase the open file limits.

Run in the development mode:

./arweave-server peer 188.166.200.45 peer 188.166.192.169 peer 163.47.11.64 peer 139.59.51.59 peer 138.197.232.192

Make a production build:

$ ./rebar3 as prod tar

You will then find the gzipped tarball at _build/prod/rel/arweave/arweave-x.y.z.tar.gz.

Testnet

To make a testnet build, run:

$ ./rebar3 as testnet tar

The tarball is created at _build/testnet/rel/arweave/arweave-x.y.z.tar.gz.

You can join the public testnet now:

./bin/start peer testnet-1.arweave.net peer testnet-2.arweave.net peer peer testnet-3.arweave.net

We recommed you do not use your mainnet mining address on testnet. Also, do not join the testnet from the mainnet machine.

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 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.

Run a specific test (the shell offers autocompletion):

([email protected])1> eunit:test(ar_fork_recovery_tests:height_plus_one_fork_recovery_test_()).

If it fails, the nodes keep running so you can inspect them through Erlang shell or HTTP API. The logs from both nodes are collected in logs/. They are rotated so you probably want to consult the latest modified [email protected].* and [email protected].* files first - ls -lat logs/.

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 [email protected].

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.

Arweave Bug Bounty Program

Arweave core team has initiated an Arweave bug bounty program, with a maximum bounty of up to USD 1,000,000. The program is focused on discovering potential technical vulnerabilities and strengthening Arweave core protocol security.

The Arweave core team puts security as its top priority and has dedicated resources to ensure high incentives to attract the community at large to evaluate and safeguard the ecosystem. Whilst building Arweave, the team has engaged with industry-leading cybersecurity audit firms specializing in Blockchain Security to help secure the codebase of Arweave protocol.

We encourage developers, whitehat hackers to participate, evaluate the code base and hunt for bugs, especially on issues that could potentially put users’ funds or data at risk. In exchange for a responsibly disclosed bug, the bug bounty program will reward up to USD 1,000,000 (paid in $AR tokens) based on the vulnerability severity level, at the discretion of the Arweave team. Please email us at [email protected] to get in touch.

arweave's People

Contributors

ldmberman avatar samcamwilliams avatar martin-torhage avatar willrogerjones avatar jxs1 avatar themue avatar damonsweeney avatar arweave-kyle avatar jamespiechota avatar hlolli avatar rootmos avatar arweave-ivan avatar aminarria avatar vkatsuba avatar halturin avatar vird avatar enilsen16 avatar bidhanroy avatar djwhitt avatar maxmellen avatar artob avatar ayanda-d avatar goomario avatar allquantor avatar wseng avatar mkg20001 avatar raphexion avatar dev43 avatar rosmcmahon avatar fadeace avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.