Skip to content
A programmable open source blockchain engine
Rust TypeScript Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Upgrade to Rust 1.42.0 Mar 15, 2020
.travis Fix not to swallow errors Jul 25, 2019
core Fix wrong debug message Mar 30, 2020
discovery Remove extern crate statements Feb 25, 2020
docker Use cache when installing libssl-dev in the docker image Jul 2, 2019
foundry Change the error message that Foundry prints when account is not unlo… Mar 30, 2020
informer Implement informer service structure for Informer API Mar 19, 2020
json Replace ActionHandler to StakeHandler Mar 30, 2020
key Fix unit tests Mar 10, 2020
keystore
network Add peerAdded as network event Mar 19, 2020
rpc Replace StakeHandler to the handeler dedicated to ReportDoubleVote Mar 30, 2020
scripts Add logstash config May 9, 2018
spec Remove the remaining assets, Mar 20, 2020
state Replace StakeHandler to the handeler dedicated to ReportDoubleVote Mar 30, 2020
sync Replace ActionHandler to StakeHandler Mar 30, 2020
test Remove HitHandler Mar 30, 2020
types Move Deposit to the types crate Mar 30, 2020
util Add INFORMER as a log target Mar 19, 2020
.dockerignore Add files to the .dockerignore Apr 25, 2019
.editorconfig Reformat Github Actions workflows Oct 29, 2019
.gitignore Add .vscode to gitignore file Sep 18, 2018
.mergify.yml Use github actions for lint and unit test tasks Oct 18, 2019
.travis.yml Upgrade to Rust 1.42.0 Mar 15, 2020
CODE_OF_CONDUCT.md Change the team email to hi@codechain.io Apr 23, 2019
CONTRIBUTING.md Create CONTRIBUTING.md Jun 18, 2018
Cargo.lock Move states of stakes to the state crate Mar 30, 2020
Cargo.toml
LICENSE Add LICENSE file Feb 4, 2018
README.md Upgrade to Rust 1.42.0 Mar 15, 2020
build.rs
clippy.toml
docker_push.sh
logstash.conf Add logstash config May 9, 2018
rust-toolchain Upgrade to Rust 1.42.0 Mar 15, 2020
rustfmt.toml Remove two empty lines Feb 25, 2020

README.md

Foundry Build Status Gitter: Foundry License: AGPL v3

Foundry is a programmable open source blockchain engine.

Build

Download Foundry code

git clone git@github.com:CodeChain-io/foundry.git
cd foundry

Build in release mode

cargo build --release

This will produce an executable in the ./target/release directory.

Building From Source

Build Dependencies

Foundry requires Rust version 1.42.0 to build. Using rustup is recommended.

  • For Linux Systems:

    • Ubuntu

      gcc, g++ and make are required for installing packages.

      $ curl https://sh.rustup.rs -sSf | sh
  • For Mac Systems:

    • MacOS 10.13.2 (17C88) tested

      clang is required for installing packages.

      $ curl https://sh.rustup.rs -sSf | sh
  • For Windows Systems:

    • Currently not supported for Windows. If on a Windows system, please install WSL to continue as Ubuntu.

Please make sure that all of the binaries above are included in your PATH. These conditions must be fulfilled before building Foundry from source.

Download Foundry's source code and go into its directory.

git clone git@github.com:CodeChain-io/foundry.git
cd foundry

Build as Release Version

cargo build --release

This will produce an executable in the ./target/release directory.

Run

To run Foundry, just run

./target/release/foundry -c solo

You can create a block by sending a transaction through JSON-RPC or JavaScript SDK.

Formatting

Make sure you run rustfmt before creating a PR to the repo. You need to install the nightly-2020-02-23 version of rustfmt.

rustup toolchain install nightly-2020-02-23
rustup component add rustfmt --toolchain nightly-2020-02-23

To run rustfmt,

cargo +nightly-2020-02-23 fmt

Linting

You should run clippy also. This is a lint tool for rust. It suggests more efficient/readable code. You can see the clippy document for more information. You need to install the nightly-2020-02-23 version of clippy.

Install

rustup toolchain install nightly-2020-02-23
rustup component add clippy --toolchain nightly-2020-02-23

Run

cargo +nightly-2020-02-23 clippy --all --all-targets

Testing

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code. Unit tests can be compiled and run with: cargo test --all. For more details, please reference Unit Tests.

License

CodeChain is licensed under the AGPL License - see the LICENSE file for details

You can’t perform that action at this time.