Giter Site home page Giter Site logo

rheehot / agora Goto Github PK

View Code? Open in Web Editor NEW

This project forked from geod24/agora

0.0 1.0 0.0 3.71 MB

Node implementation for BOA CoinNet

License: MIT License

D 76.82% C++ 22.53% Logos 0.07% RPC 0.06% Dockerfile 0.02% Shell 0.06% C 0.43% Batchfile 0.02%

agora's Introduction

Agora

Docker Hub image

Build Status CircleCI codecov License Documentation

Node implementation for BOA CoinNet

Docker usage

We provide a public build of this repository (see above). The easiest way to get agora is to run docker pull bpfk/agora.

The Dockerfile lives at the root of this repository, so one can run docker build -t agora . to build it. Note that you need to initialize submodules (git submodules update --init) before you first build agora.

For a test run, try:

docker run -p 127.0.0.1:4000:2826/tcp -v `pwd`/doc/:/agora/etc/ agora -c etc/config.example.yaml

This will start a node with the example config file, and make the port locally accessible (See http://127.0.0.1:4000/) .

Building on POSIX

Dependencies

You need a recent C++ compiler (g++ with N4387 fixed), a recent (>=1.19.0) version of the LDC compiler, and dub. On Linux, we recommend gcc-9. On OSX, the latest llvm package available on Homebrew.

Additionally, the following are dependencies:

  • libsodium: Development library
  • pkg-config: For DUB to find the correct sqlite3 and other system libraries
  • openssl: Binary (to detect the version) and development library
  • sqlite3: Development library
  • zlib: Development library

Additionally, on OSX, PKG_CONFIG_PATH needs to be properly set to pick up sqlite3 and openssl. Provided you installed those packages via brew, you can run the following command prior to building:

export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig:/usr/local/opt/[email protected]/lib/pkgconfig"

Since this setting does not persist, we recommend you follow Homebrew's instructions and add it to your .bashrc, .zshrc, etc...

Build instructions

# Install the LDC compiler (you might want to use a newer version)
curl https://dlang.org/install.sh | bash -s ldc-1.20.0
# Add LDC to the $PATH
source ~/dlang/ldc-1.20.0/activate
# Clone this repository
git clone https://github.com/bpfkorea/agora.git
# Use the git root as working directory
cd agora/
# Initialize and update the list of submodules
git submodule update --init
# Build the application
dub build --skip-registry=all
# Build & run the tests
dub test --skip-registry=all

Running tests

Agora comes with plenty of tests. Take a look at the CI configuration for an exact list. At the moment, the three main ways to run the test are:

  • dub test: Test the consensus protocol and runs all the unittests
  • rdmd tests/runner.d: Run a serie of simple integrations tests
  • ci/system_integration_test.d: Run a full-fledged system integration test, including building the docker image.

agora's People

Contributors

andrejmitrovic avatar denizzzka avatar etham-ju avatar geod24 avatar graydon avatar linked0 avatar michaelkim20 avatar trusthenry avatar

Watchers

 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.