All Projects → avrio-project → avrio-rs

avrio-project / avrio-rs

Licence: LGPL-3.0 License
Avrio's core code written in rust.

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to avrio-rs

aircal
Visualize Airflow's schedule by exporting future DAG runs as events to Google Calendar.
Stars: ✭ 66 (+371.43%)
Mutual labels:  dag
mongodb-cluster
MongoDB sharded cluster
Stars: ✭ 25 (+78.57%)
Mutual labels:  sharding
dag
Simple DSL for executing functions in Go
Stars: ✭ 85 (+507.14%)
Mutual labels:  dag
badger
轻量级单表操作dao框架,支持分库分表
Stars: ✭ 13 (-7.14%)
Mutual labels:  sharding
activerecord-shard for
Database Sharding Library for ActiveRecord
Stars: ✭ 16 (+14.29%)
Mutual labels:  sharding
diamond drops
WIP on sharding and Ethereum 2.0 with enshrined-in-consensus data availability and Rust: a fast, safe, concurrent and practical programming language
Stars: ✭ 54 (+285.71%)
Mutual labels:  sharding
react-monitor-dag
A React-based operation/monitoring DAG diagram.(基于React的运维/监控DAG图)
Stars: ✭ 57 (+307.14%)
Mutual labels:  dag
apollo
An experimental distributed ledger platform based on a sea of DAG Nodes
Stars: ✭ 33 (+135.71%)
Mutual labels:  dag
Azuma
A package that actually syncs your ratelimits across all your clusters on Discord.JS
Stars: ✭ 19 (+35.71%)
Mutual labels:  sharding
sharedsharder
Shard your discord.js bot across devices!
Stars: ✭ 18 (+28.57%)
Mutual labels:  sharding
hathor-core
HathorNetwork's fullnode core
Stars: ✭ 57 (+307.14%)
Mutual labels:  dag
scilla-vanilla
No description or website provided.
Stars: ✭ 20 (+42.86%)
Mutual labels:  sharding
ray tutorial
An introductory tutorial about leveraging Ray core features for distributed patterns.
Stars: ✭ 67 (+378.57%)
Mutual labels:  sharding
obyte-hub
Hub for Obyte network
Stars: ✭ 17 (+21.43%)
Mutual labels:  dag
django-postgresql-dag
Directed Acyclic Graphs with a variety of methods for both Nodes and Edges, and multiple exports (NetworkX, Pandas, etc). This project is the foundation for a commercial product, so expect regular improvements. PR's and other contributions are welcomed.
Stars: ✭ 23 (+64.29%)
Mutual labels:  dag
hamilton
A scalable general purpose micro-framework for defining dataflows. You can use it to create dataframes, numpy matrices, python objects, ML models, etc.
Stars: ✭ 612 (+4271.43%)
Mutual labels:  dag
suggestions-bot
A Discord bot designed to build better communities by encouraging a positive and constructive relationship between community and staff.
Stars: ✭ 22 (+57.14%)
Mutual labels:  sharding
react-visual-modeling
A DAG React Component for visualization modeling, suitable for UML, database modeling, data warehouse construction.(一个基于React的数据可视化建模的DAG图,适用于UML,数据库建模,数据仓库建设等业务)
Stars: ✭ 96 (+585.71%)
Mutual labels:  dag
lineage
Generate beautiful documentation for your data pipelines in markdown format
Stars: ✭ 16 (+14.29%)
Mutual labels:  dag
go-pdu
Parallel Digital Universe - A decentralized social networking service
Stars: ✭ 39 (+178.57%)
Mutual labels:  dag

Avrio

Master branch: Travis CI Development branch: Travis CI Codacy Badge

This is the offical implemention of the avrio protocol. It is written in rust. It's protocol is subject to frequent change and as such no documention exists (however it is in the works) It is currently not ready for usage. For more details please join our discord

Table of Contents

How to compile

Build optimization

The following instructions use the --release flag. This means that cargo will optimize the code while compiling. It takes considerably longer to compile but makes the executables much faster. If you want to compile faster or if you are debugging the code, remove the release tag and the bins will end up in target/debug rather than target/release. Please note that using these debug bins will result in a considerably lower vote and hence lower reward. On slower machines, using debug may cause you to receive vote below the minimum (meaning you get banned for an epoch). For this reason, we do not recommend that you remove the ---release tag unless needed.

Linux

Prerequisites

Rust makes abundant use of Rust's syntax extensions and other advanced, unstable features. Because of this, you will need to use a nightly version of Rust. If you already have a working installation of the latest Rust nightly, feel free to skip to the next section.

To install a nightly version of Rust, we recommend using rustup. Install rustup by following the instructions on its website. Once rustup is installed, configure Rust nightly as your default toolchain by running the command:

rustup default nightly

If you prefer you can use per-directory overrides to use the nightly version only for avrio by running the following command in the directory:

rustup override set nightly

Warning: Avrio requires the latest version of Rust nightly.

If avrio suddenly stops building, ensure you're using the latest version of Rust nightly and avrio by updating your toolchain and dependencies with:

rustup update && cargo update

You will also need the following packages: Boost, OpenSSL Cargo (or rustc) and git.

Ubuntu
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get install -y build-essential g++-8 gcc-8 git libboost-all-dev libssl-dev cmake libclang-dev clang
git clone -b master --single-branch https://github.com/avrio-project/avrio-rs/
cd avrio-rs
cargo build --release

After the completion, the binaries will be in the target/release folder.

cd target
./avrio-daemon
Generic Linux

Ensure you have the dependencies listed above.

git clone -b master --single-branch https://github.com/avrio-project/avrio-rs/
cd avrio-rs
cargo build --release

After the completion, the binaries will be in the target/release folder.

cd target
./avrio-daemon

Windows

Compiling on native windows is currently impossible due to a fff 0.3 assembly bug. Please use MinGw to compile.

File structure

Each aspect of the code is split up into libraries (e.g. database, blockchain, p2p). Libraries are further split into modules (e.g., transaction is a module part of the core library; genesis is a module part of the blockchain lib). If you want to use one of these libs in your code then please add the following to your Cargo.toml and clone this repo into your extern folder for the blockchain library avrio_<lib_name> = { path: "extern/<lib_name>" } e.g. avrio_p2p = { path: "extern/p2p" } The executables can be found in the bin folder, the testnet executables are in bin/testnet.

Contributing

Pull requests are welcomed. If you can help with the code, please fork the repo, make your changes to the forked repo and then open a PR into the development branch. Please NEVER open a PR into the master branch. Any PRs into the master branch without prior authorization will be closed.

Contributors

A huge thank you to everyone who has controbuted to the avrio codebase:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].