/chain

Alpha version prototype of Crypto.com Chain⛓

Primary LanguageRustOtherNOASSERTION

Crypto.com Chain

Table of Contents

  1. Description
  2. Contributing
  3. License
  4. Documentation
  5. Building
    5.1. Build Prerequisites
    5.2. Build from Source Code
  6. Start a Local Full Node
  7. Send your First Transaction
  8. Testing
  9. Useful LInks

This repository contains the pre-alpha version prototype implementation of Crypto.com Chain. The current repository consists of the following Rust sub-crates:

  • chain-abci: the Tendermint ABCI application that currently does the transaction validation etc.

  • chain-core: the library that contains the main type definitions and any utility code (such as serialization), so that it can be used in chain-abci and other applications.

  • dev-utils: currently a minimal development tool for generating genesis.json

  • client-[common|index|core|rpc]: Client backend implementation for transaction creation and wallet management. Follow these links for more details:

Please abide by the Code of Conduct in all interactions, and the contributing guidelines when submitting code.

Apache 2.0

Technical documentation can be found in this Github repository (you can read it in this hosted version).

Crypto.com chain requires the following to be installed before build.

After all dependencies are installed, add the following lines to ~/.cargo/config to enable generating instructions for Streaming SIMD Extensions 3 and Advanced Vector Extensions on build:

[build]
rustflags = ["-Ctarget-feature=+aes,+ssse3"]

(TODO: In the future, the build tooling may be migrated to Bazel / Nix etc. for reproducible builds.)

$ git clone git@github.com:crypto-com/chain.git
$ cd chain

$ cargo build

The built executables will be put inside folder /target/debug/ by default.

Please follow the instruction to deploy a local full node.

Kindly refer to this instruction to perform transactions between addresses.

To run the test cases

$ cargo test

To measure code coverage by cargo-tarpaulin:

$ cargo tarpaulin

This only works on x86_64 processors running Linux. On different platforms, you will need to use Docker:

$ docker run --security-opt seccomp=unconfined -v "$PWD:/volume" xd009642/tarpaulin