
CKB의 vm, 오픈 소스 RISC-V ISA 기반
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 버전으로 테스트됩니다.
# 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에는 두 가지 모드가 있습니다:
일관된 동작을 위해서는 ASM 모드만 사용해야 합니다. Rust 모드는 개발을 돕기 위해 개발되었으며, 당사에서는 프로덕션에서 절대 사용하지 않습니다. 버그가 있는 경우 Rust 모드와 ASM 모드 간에 일관되지 않은 동작이 발생할 수 있습니다.