All Projects → nervosnetwork → Ckb Vm

nervosnetwork / Ckb Vm

Licence: mit
CKB's vm, based on open source RISC-V ISA

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Ckb Vm

Blockchain
A simple implementation of blockchain in java
Stars: ✭ 201 (-4.74%)
Mutual labels:  blockchain
Bitcoin S
Bitcoin Implementation in Scala
Stars: ✭ 206 (-2.37%)
Mutual labels:  blockchain
Holochain
The new, performant, and simplified version of Holochain on Rust (sometimes called Holochain RSM for Refactored State Model)
Stars: ✭ 205 (-2.84%)
Mutual labels:  blockchain
Adamant Im
ADAMANT Decentralized Messenger. Progressive Web Application (PWA)
Stars: ✭ 202 (-4.27%)
Mutual labels:  blockchain
Starport
The easiest way to build a blockchain.
Stars: ✭ 204 (-3.32%)
Mutual labels:  blockchain
Elixir Node
Elixir full node implementation of the aeternity specification
Stars: ✭ 208 (-1.42%)
Mutual labels:  blockchain
Cleargdpr
GDPR Compliance Solution
Stars: ✭ 201 (-4.74%)
Mutual labels:  blockchain
Sample Project Gradle
Sample web3j project using Gradle
Stars: ✭ 211 (+0%)
Mutual labels:  blockchain
Ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
Stars: ✭ 207 (-1.9%)
Mutual labels:  blockchain
Bitcoin Wallet
Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required.
Stars: ✭ 2,672 (+1166.35%)
Mutual labels:  blockchain
Fabric Starter
Starter Application and Deployment Scripts for Hyperledger Fabric
Stars: ✭ 202 (-4.27%)
Mutual labels:  blockchain
Blockchain Wallet
区块链钱包技术指南
Stars: ✭ 205 (-2.84%)
Mutual labels:  blockchain
Stacks Blockchain
The Stacks 2.0 blockchain implementation
Stars: ✭ 2,549 (+1108.06%)
Mutual labels:  blockchain
Bitconch Core
A new distributed web protocol for smart contracts and decentralized applications.
Stars: ✭ 203 (-3.79%)
Mutual labels:  blockchain
Iroha
Iroha - A simple, enterprise-grade decentralized ledger
Stars: ✭ 210 (-0.47%)
Mutual labels:  blockchain
Client
The nOS Client
Stars: ✭ 202 (-4.27%)
Mutual labels:  blockchain
Evote
A voting application that leverages Hyperledger Fabric and the IBM Blockchain Platform to record and tally ballots.
Stars: ✭ 208 (-1.42%)
Mutual labels:  blockchain
Ppci
A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python
Stars: ✭ 210 (-0.47%)
Mutual labels:  riscv
Trust Web3 Provider
Web3 javascript wrapper provider for iOS and Android platforms.
Stars: ✭ 210 (-0.47%)
Mutual labels:  blockchain
Lbrycrd
The blockchain that provides the digital content namespace for the LBRY protocol
Stars: ✭ 2,756 (+1206.16%)
Mutual labels:  blockchain

Nervos CKB VM

Build Status Build Status codecov


About CKB VM

CKB VM is a pure software implementation of the RISC-V instruction set used as scripting VM in CKB. Right now it implements full IMC instructions for both 32-bit and 64-bit register size support. In the future we might also implement V extensions to enable better crypto implementations.

License

Nervos CKB is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.

Development Process

This project is still in development, it's NOT in production ready status.

The develop branch is regularly built and tested, but is not guaranteed to be completely stable. CKB will use released versions of CKB VM which are tested and more stable.

The contribution workflow is described in CONTRIBUTING.md, and security policy is described in SECURITY.md. To propose new protocol or standard for Nervos, see Nervos RFC.


How to build

CKB VM is currently tested mainly with stable Rust version on 64-bit Linux, macOS, and Windows.

# download CKB VM
$ git clone https://github.com/nervosnetwork/ckb-vm
$ cd ckb-vm
$ cargo build

You can also run the tests:

make test

CKB VM has already included RISC-V binaries used in tests, so you don't need a RISC-V compiler to build binaries. However if you do want to play with your own binaries, a RISC-V compiler might be needed. riscv-tools can be a good starting point here, or if you are an expert on GNU toolchain, you might also compile upstream GCC from source with RISC-V support, here is an example. CKB VM is using standard RISC-V instructions and ELF binary format, so theoretically any RISC-V compatible compilers are able to produce contracts used in CKB VM(tho bug reports are very welcome if you find breakage).

Notes on Different Modes

Right now CKB VM has 3 different modes:

  • Rust interpreter mode
  • Assembly based interpreter mode(ASM mode)
  • Ahead-of-time compilation mode(AOT mode)

For consistent behavior, you should only use ASM or AOT mode, and it's best if you stick with either ASM or AOT mode depending on your use case. The Rust mode is developed more to assist development, and never used in production by us. In case of bugs, there might be inconsistent behaviors between Rust mode and ASM/AOT mode.

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