ShangDian ๆฏ CID ็ฝ็ป็ๅผๆบ Rust ๅฎ็ฐใ
ๆญคๅญๅจๅบๅ ๅซ CID ็ฝ็ป ๅฎ็ฐ็ๆบไปฃ็ ใ
ไปฅไธๆฏ็ฎๅฝๆถๆ๏ผ
โโโ ShangDian
โโโ core
โ โโโ application
โ โโโ archive
โ โโโ blockstore
โ โโโ blockstore-server
โ โโโ broadcast
โ โโโ cli
โ โโโ consensus
โ โโโ dack-aggregator
โ โโโ e2e
โ โโโ fetcher
โ โโโ handshake
โ โโโ indexer
โ โโโ interfaces
โ โโโ keystore
โ โโโ metrics
โ โโโ mock
โ โโโ node
โ โโโ notifier
โ โโโ origin-arweave
โ โโโ origin-demuxer
โ โโโ origin-filecoin
โ โโโ origin-http
โ โโโ origin-ipfs
โ โโโ pinger
โ โโโ pool
โ โโโ rep-collector
โ โโโ reputation
โ โโโ resolver
โ โโโ rpc
โ โโโ rpc-openrpc
โ โโโ rpc-openrpc-macros
โ โโโ schema
โ โโโ service-executor
โ โโโ signer
โ โโโ syncronizer
โ โโโ test-utils
โ โโโ topology
โ โโโ types
โ โโโ utils
โโโ docs
โ โโโ rpc
โโโ etc
โ โโโ global-metrics
โโโ lib
โ โโโ affair
โ โโโ atomo
โ โโโ atomo-rocks
โ โโโ blake3-js
โ โโโ blake3-tree
โ โโโ blake3-wasm
โ โโโ cdk
โ โโโ cdk-rust
โ โโโ fast-sri
โ โโโ fleek-crypto
โ โโโ fleek-ipld
โ โโโ hp-fixed
โ โโโ infusion
โ โโโ infusion-proc
โ โโโ ink-quill
โ โโโ once-ptr
โ โโโ panic-report
โ โโโ resolved-pathbuf
โ โโโ sdk
โ โโโ simulon
โโโ services
โโโ ai
โโโ fetcher
โโโ js-poc
ๆไธไธช้กถ็บง็ฎๅฝ lib
ใcore
ๅ services
๏ผ
-
lib
๏ผๅๅปบ็ไปปไฝๅผๆบๅบ๏ผ็จไปฅ่งฃๅณ่ชๅทฑ็้ฎ้ข๏ผ่ฟไบๅบไปฅๅๅฅฝ็่ฎธๅฏๅๅธ๏ผไธ Rust ็ๆ็ณป็ปๅ ผๅฎน๏ผMIT
|Apache
๏ผใ -
core
๏ผ่ฟๆฏๆ ธๅฟๅ่ฎฎ็ๆๆๅฎ็ฐ๏ผไธป่ฆ็ crate ๆฏnode
๏ผๅฎๅ ๅซๆ้่ฆไธๅๅธ็main.rs
ใๅฆไธไธชๅปบ่ฎฎๅคงๅฎถ็ๆ็้่ฆ crate ๆฏinterfaces
๏ผๅฎๅ ๅซไบ้กน็ฎ็่ช้กถๅไธ่ง่ใ -
services
๏ผไฝฟ็จSDK
ๆๅปบ็ๆๅกใ
ๆฌ่ฝฏไปถ้็จ็่ฎพ่ฎกๆจกๅผๆทฑๅ Alan Kay ๆ่ฟฐ็้ขๅๅฏน่ฑกๆจกๅ็ๅฏๅ๏ผ่ฟๅฏ่ฝไธ Java ไฝฟ้ขๅๅฏน่ฑก็ผ็จ๏ผOOP๏ผๅๅฃฐๅคงๅช็ๆจกๅผ็ฅๆไธๅใ
็ฎ่่จไน๏ผ่ฟไธๅไธ็ๅฟต็ฑปไผผ๏ผๅฐไธๅ็่ฎก็ฎๅๅค็ๅๅ ่กจ็คบไธบ้่ฟๆถๆฏไผ ้็ธไบ้ไฟก็ๅฏน่ฑกใ
ไธบไบๅ
ๅๅฉ็จ็ๆ็ณป็ป๏ผ้ป่ฎคๅจ rust-toolchain
ๆไปถไธญ่ฎพ็ฝฎไบ Rust ็ nightly ็ๆฌ๏ผไฝฟ็จ็็ๆฌๆฏ nightly-2023-07-01
๏ผ่ฟไนๆฏ rustfmt
้กน็ฎๆฌ่บซไฝฟ็จ็็ๆฌ๏ผ่ฟๆฏๅฏ้ ๆง็ไธไธชๅฅฝๆ ๅฟใ
่ฟๆฏไธบไบไฝฟ IDE ้ป่ฎค้ๆฉๅ้ป่ฎค่ฐ็จ cargo fmt
ๅจๆฏไธชไบบไน้ดไฟๆไธ่ด๏ผๅนถไธๅจไฝฟ็จ clippy ๅ fmt ๆถๅฏไปฅไฝฟ็จไธไบ nightly ้้กนใ
ไฝ่ฟๅนถไธๆๅณ็ๅฐไฝฟ็จ่ฟไธช็ๆฌๆฅๆๅปบๅๅๅธไบ่ฟๅถๆไปถ๏ผไปปไฝๅฎ้
็จไพ็ๆๅปบๅบไฝฟ็จ cargo +stable build
ๅฝไปค๏ผๅณๅฐๅฐๆฅ็่ๆฌๅ CI ้
็ฝฎๅฐ็ฎๅ่ฟไธช่ฟ็จใๆไปฌ็ MSRV๏ผๆๅฐๆฏๆ Rust ็ๆฌ | Minimum Supported Rust Version๏ผๆฏ 1.75ใ
ๆป่่จไน๏ผๆไปฌไฝฟ็จ rust-toolchain
ไธญ่ฎพ็ฝฎ็้ป่ฎคๅผๆฅไฟๆไปฃ็ ็ไธ่ดๆ ผๅผใๅนถไธไธๅฎ่กจ็คบ่ฟๆฏๆไปฌ็จไบๆๅปบ็็ผ่ฏๅจ็ๆฌ๏ผๆๅปบๅบไฝฟ็จ rust stable๏ผๅนถไธๆไฝ็ๆฌไธบ 1.75ใ
่ฆ่ฟ่ก่็นๅนถๆง่ก็ฎๅ็ๆฃๆฅ๏ผ่ฏทๆง่กไปฅไธๆไฝ๏ผ
# ๅฏๅจ่็น
$ cargo run -r -- run
# ๅจๅฆไธไธช็ป็ซฏ๏ผๅ้่ฏทๆฑๅฐ ping rpc ็ซฏ็น
$ curl -X POST -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"method": "flk_ping",
"params": [],
"id": 1
}' https://127.0.0.1:4069/rpc/v0
# ๅๅบ๏ผ{"jsonrpc":"2.0","result":"pong","id":1}