
CKB VMは、CKBでスクリプトVMとして使用されるRISC-V命令セットの純粋なソフトウェア実装です。現在、32ビットと64ビットの両方のレジスタサイズをサポートする完全なIMCB命令を実装しています。将来的には、より優れた暗号実装を可能にするV拡張も実装する可能性があります。
Nervos CKBはMITライセンスの条件下でリリースされています。詳細はCOPYINGを参照するか、https://opensource.org/licenses/MITをご覧ください。
これは現在、本番のCKBメインネットにデプロイされ使用されています。
developブランチは定期的にビルドおよびテストされていますが、完全に安定していることは保証されていません。CKBは、テスト済みでより安定したCKB VMのリリースバージョンを使用します。
コントリビューションのワークフローはCONTRIBUTING.mdに、セキュリティポリシーはSECURITY.mdに記載されています。Nervosの新しいプロトコルや標準を提案するには、Nervos RFCを参照してください。
CKB VMは現在、64ビットLinux、macOS、Windows上で主にstable Rustバージョンでテストされています。
# download CKB VM
$ git clone https://github.com/nervosnetwork/ckb-vm
$ cd ckb-vm
$ cargo build
テストを実行することもできます:
make test
CKB VMにはテストで使用されるRISC-Vバイナリが既に含まれているため、バイナリをビルドするためにRISC-Vコンパイラは必要ありません。ただし、独自のバイナリで試してみたい場合は、RISC-Vコンパイラが必要になるかもしれません。riscv-toolsが良い出発点になります。また、GNUツールチェーンのエキスパートであれば、RISC-Vサポート付きで上流のGCCをソースからコンパイルすることもできます。ここに例があります。CKB VMは標準のRISC-V命令とELFバイナリ形式を使用しているため、理論的には任意のRISC-V互換コンパイラがCKB VMで使用されるコントラクトを生成できます(ただし、問題が見つかった場合はバグ報告を歓迎します)。
現在、CKB VMには2つの異なるモードがあります:
一貫した動作のため、ASMモードのみを使用すべきです。Rustモードは開発を支援するために開発されており、弊社では本番環境で使用されたことはありません。バグがある場合、RustモードとASMモードの間で動作が矛盾する可能性があります。