Rust crate の依存先 crate まで debug したい
bdk-cli をローカルの regtest で使おうと思ったらエラーが出た
Regtest :: Bitcoin Dev Kit
bdk 自体と rust-electrum-client が関わっている処理みたいなので、処理をおいたいが、どうすればいいのかわからないぞ。
とりあえず print debug しか脳がないから、依存先に println 仕込むんだ〜
ということで、ローカルに bdk が必要。
それはもともとあるが、bdk はそちらはそちらとして作業するので、最近した git worktree でサブディレクトリきって、そこそ依存先に指定してみた
Git - git-worktree Documentation
git worktree add bdk-cli-debug
dependecies に先程の worktree のパスを指定する
Specifying Dependencies - The Cargo Book
[dependencies]
#bdk = "^0.2"
bdk = { path = "/home/kanna/bdk/bdk-cli-debug" }
無事依存先の bkd-cli-debug 内の bdk 側に仕込んだ println 出力された。
これでいいのか?普通 debug どうやりますか。フィードバックコメント助かります :pray:
うまく行くコマンド
cargo run -- --descriptor "wpkh(tprv8ZgxMBicQKsPexGYyaFwnAsCXCjmz2FaTm6LtesyyihjbQE3gRMfXqQBXKM43DvC1UgRVv1qom1qFxNMSqVAs88qx9PhgFnfGVUdiiDf6j4/0/*)" sync
エラーの出るコマンド
cargo run -- --descriptor "wpkh(tprv8ZgxMBicQKsPexGYyaFwnAsCXCjmz2FaTm6LtesyyihjbQE3gRMfXqQBXKM43DvC1UgRVv1qom1qFxNMSqVAs88qx9PhgFnfGVUdiiDf6j4/0/*)" -n regtest -s localhost:50001 sync
やはりここのパースが問題なようで
localhost ではなくて 127.0.0.1 で解決はする
doc が間違っている。
discord で聞いた。
引き続き調べたところ、localhost をパースできていないわけではなかった。
get_one_socket_addr
で、to_socket_addrs が複数のアドレスを返す場合エラーにしている。
ただし、環境によっては ipv4 と ipv6 が返る場合があり、その場合でも複数アドレス指定されたのと同じ扱いになってエラーになっていた。
PR 出したいところだったが、下記 PR で該当コードは削除されロジックは変更された。
Implement timeouts when there are multiple socket addrs by afilini · Pull Request #50 · bitcoindevkit/rust-electrum-client