Open woshidama323 opened 2 years ago
cargo run [options] [-- args] Run a binary or example of the local package.
All the arguments following the two dashes (--) are passed to the binary to run. If you're passing arguments to both Cargo and the binary, the ones after -- go to the binary, the ones before go to Cargo. --bin name Run the specified binary.
--example name Run the specified example.
rust-gdb --args target/debug/benchy merkleproofs --size 2
cargo run --release --bin benchy -- merkleproofs --size 2
https://docs.rs/clap/latest/clap/
You can explicitly create a Vec with Vec::new:
let v: Vec
https_proxy=192.168.20.9:1089 cargo deps -d 4 | dot -Tpng > graph.png 绘制调用关系
Neptune is a Rust implementation of the Poseidon hash function tuned for Filecoin.
Poseidon: ZK-friendly Hashing https://eprint.iacr.org/2019/458.pdf Yoshiki
arity 是树的自由度
git clone --bare {repo}
cd {project}.git
git push --mirror {new-repo}
## 样例
https_proxy=192.168.20.9:1089 git clone --bare https://github.com/jeek2018/rust-fil-proofs.git
admindeMac-mini:filecoin-ffi admin$ cat rust/.cargo/config
[net]
git-fetch-with-cli = true
### 如果从remote端git 下来依赖包,那么cargo 中不会自动追踪 最新的commit的信息 主要原因是cargo.lock 中已经锁定了主要的依赖版本,需要update 一下才能更新
https_proxy=192.168.20.9:1089 cargo update
$HOME/.cargo/git/checkouts
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html
不想push到repo中 可以这么干
[package]
name = "my-library"
version = "0.1.0"
[dependencies]
uuid = "1.0"
[patch.crates-io]
uuid = { path = "../path/to/uuid" }
但是需要注意上面的这个只是针对 需要替换的package 是从crate.io来的时候,可以这样用
[patch."https://github.com/woshidama323/bellperson"]
bellperson = { version = "0.18.0",path = "/home/fsw/.cargo/git/checkouts/rust-gpu-tools-0b366f849ae22563/ec52b6b/" }
### 如果是从github等其他来源的话,需要这样
注意: patch目前不支持 workspace 成员中的Cargo.toml 替换,需要放在根的位置
## 为能够用gdb的方法调试rust 需要找到unittest 对应的可执行程序
target/debug/dep/crate_name_....
## 有时候只想编译test 但是不运行,有时候运行时间比较长
cargo test --no-run
遇到一个问题就是,cargo.toml文件中依赖的包 如果是git的方式应用的,比如rust-fil-proofs 中引用的hwloc 就是这个场景,
直接从crates.io 下来的包要本地必须安装hwloc 但是git下来的确不要
目前能够确定的是与git 有直接关系 只是rust 层是如何编译处理的,这个问题需要做个小实验来验证
export CARGO_NET_GIT_FETCH_WITH_CLI=true
rustup default stable
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
solc 转化成rust 代码用于合约调用 https://github.com/gakonst/ethers-rs
https://crates.io/crates/ethers-solc
flashbot 中间件 https://github.com/onbjerg/ethers-flashbots flashbot文档 https://docs.flashbots.net/flashbots-auction/overview
rust笔记