monacoindの同期が止まる問題の解決法

その他

30 Res. 42.2799914 MONA 3 Fav.

1 :名無し一級:2023/09/07 19:50:56 (1年前)  0MONA/0人

Ubuntu 22.04でmonacoind v0.20.3を動かそうとしているのですが、

ERROR: AcceptBlockHeader: Consensus::CheckBlockHeader: 5673823195ab7bf3319edaddaff782662e3fc75761de98b347605fea9350f821, high-hash, proof of work failed

というエラーが出て同期出来ない状態です。
解決法をご存知の方ご教授頂けないでしょうか?

2 :林屋本舗四段錬士男爵:2023/09/08 12:51:35 (1年前)  0MONA/0人

マイニングアルゴリズム変更した時期とエラー出てる時間が同じなので

わからぬ
とりあえずチェックポイント使ってみるのがよいかも

3 :名無し一級:2023/09/08 22:37:27 (1年前)  0MONA/0人

返信ありがとうございます。

chainparams.cppのcheckpointDataに下記を追記したのですが変化なしです。
{ 450000, uint256S("0x5673823195ab7bf3319edaddaff782662e3fc75761de98b347605fea9350f821") },

ど素人で申し訳無いですが、やり方はあっているのでしょうか?

4 :脇P七段聖人男爵:2023/09/09 21:47:44 (1年前)  0MONA/0人

ご自分でコンパイルできる方ですか……(震え

v0.20.3でしたらcheckpoint自体が450000以上で書き込まれているので必要はないはずです。
https://github.com/monacoinproject/monacoin/blob/master-0.20.3/src/chainparams.cpp#L144-#L157

症状から考えるに、sakura辺りのノードに繋がっている?感じがします。

Windowsならnslookup dnsseed.monacoin.org もしくは nslookup dnsseed.tamami-foundation.org
Linuxならdig dnsseed.monacoin.org もしくは dig dnsseed.tamami-foundation.org
で出てきたIPアドレスで

monacoin-cli addnode <IPアドレス> add
してみてどうでしょうか?これで他のノードに接続されるはずです。

5 :林屋本舗四段錬士男爵:2023/09/10 02:47:48 (1年前)  0MONA/0人

あっ既にど素人の動きではない
そういえば今のモナコインってブートストラップ使えるんでしたっけ

6 :脇P七段聖人男爵:2023/09/10 09:52:42 (1年前)  0MONA/0人

ブートストラップは0.10.x以降は推奨されません。
https://github.com/monacoinproject/monacoin/issues/89#issuecomment-826324605

7 :名無し一級:2023/09/10 09:53:53 (1年前)  0MONA/0人

>脇P
アドバイスありがとうございます。
試してみましたが変化ありませんでした。

Windowsの方のバイナリは正常に動作するので、そちらからblk00000.datをもってきてmonacoind -reindexしても同じ症状て止まる感じです。

困ったw

8 :脇P七段聖人男爵:2023/09/10 10:05:31 (1年前)  0.0114114MONA/1人

ubuntu22.04で現在運用中のサーバがあるので問題ないと思うのですが、念のため一から再同期してみます

9 :名無し一級:2023/09/11 17:42:28 (1年前)  0MONA/0人

>脇P
お忙しいところお手数をおかけしてすいません。

VMwareに新しくUbuntu入れて試してみたのですが、同じ症状が出るようです。

10 :脇P七段聖人男爵:2023/09/11 20:12:04 (1年前)  0MONA/0人

何回かubuntu22.04で再同期してみてるんですが、今のところ再現しないです。

ちょっと確認なんですがCPUはx86_64系ですよね?

11 :名無し一級:2023/09/11 21:59:30 (1年前)  0.39MONA/1人

>脇P
VPSなので何とも言えないのですが、
SAKURA VPS Ubuntu 22.04 amd64 さくらのVPS バージョン v5

cat /proc/cpuinfoで調べるとIntel(R) Xeon(R) Gold 6212U CPU @ 2.40GHzとの事です。

12 :名無し一級:2023/09/11 22:19:54 (1年前)  0MONA/0人

セットアップはこんな感じで行いました。

sudo apt-get install git git-core build-essential libssl-dev libdb++-dev libminiupnpc-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libboost-test-dev libevent-dev libboost-all-dev automake autoconf libtool
git clone https://github.com/monacoinproject/monacoin.git
cd monacoin
sudo apt-get install pkg-config
./autogen.sh
./configure --with-incompatible-bdb --without-gui
sudo make
sudo make install

13 :脇P七段聖人男爵:2023/09/11 22:48:13 (1年前)  0MONA/0人

こちらで如何でしょうか?

git clone https://github.com/monacoinproject/monacoin.git
cd monacoin
cd depends
make
cd ../
./autogen.sh
./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++"
make

14 :名無し一級:2023/09/12 06:29:24 (1年前)  0MONA/0人

./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++"

で試すと以下のエラーが出るので
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)

./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++" --with-incompatible-bdb --without-gui
で試しましたが変化ありませんでした。環境的な問題なんでしょうか。

15 :脇P七段聖人男爵:2023/09/12 09:56:45 (1年前)  0MONA/0人

一旦以下のコマンドを実行してから >>13 を実行してみて >>14 のエラーは出ますか?
sudo apt remove libdb++-dev

16 :名無し一級:2023/09/12 17:55:34 (1年前)  0MONA/0人

お世話になっております。お忙しいところ申し訳ありません。

入力:
sudo apt remove libdb++-dev
./autogen.sh
./configure --enable-glibc-back-compat --prefix=`pwd`/depends/x86_64-pc-linux-gnu LDFLAGS="-static-libstdc++"

出力:
configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)

17 :脇P七段聖人男爵:2023/09/12 19:33:16 (1年前)  0MONA/0人

>>16
ありがとうございます。

恐らくですが、インストール済のlibdb5系が悪さをしていると思われます。
sudo dpkg -l でlibdb5系統をremoveしていただくのが早いかなと。
私が >>13 で書いているのはローカルで必要なライブラリ全てをビルドするものです。
それが動かないとなると恐らく既存のインストール済みの何かが悪さをしていると判断しました。


もし急ぎでしたらこちらを使っていただく方が早いかなとは思います。
https://github.com/monacoinproject/monacoin/releases/download/v0.20.3/monacoin-0.20.3-x86_64-linux-gnu.tar.gz

18 :名無し一級:2023/09/12 21:24:36 (1年前)  0MONA/0人

>17
ありがとうございます明日試してみます!

一応printfデバッグをしてるのですが、
https://github.com/monacoinproject/monacoin/blob/master-0.20.3/src/pow.cpp#L274
この関数の内部の
if (UintToArith256(hash) > bnTarget)
return false;
でfalseが返る事でエラーが出てると思うのですがアルゴリズム切り替えの境界だとどんな動作になるんでしょうか?
bnTarget 1929350912
UintToArith256(hash) 1929350944
UintToArith256(params.powLimit) 1929350976
printf("%d", );で出力した値です。

19 :脇P七段聖人男爵:2023/09/13 02:12:29 (1年前)  0MONA/0人

libdb5を使うと内部で保存しているデータが違う物になるとかでbitcoinでも一度これでフォークを起こしかけたことがあります。
なので最近まではかたくなにlibdb4.8系をインストールするようにしていたはずです。

恐らくですが別のノードから流れてきた450000blockのデータがlibdb5で誤った形で保存され、それと計算結果を比べた結果falseを返していると思われます。
この感じだと途中の計算も前のブロックデータ読み出す関係で狂ってるかな……?

450000-4500024までは上の直近25ブロックまでさかのぼってDGWv3アルゴリズムでエラーが出ないようにPowLimit(1e0fffff)の値が入っています。
なのでこの場合だとbnTargetの中がPowLimitの値が入っているためtrueが返ると思われます。
実際の動作ですが細かい数値は内容作ってコンパイルしないといけないのでちょっと何とも言えないです。

コンパイルまでご希望でしたらすみませんが土日まで待って頂けると非常に助かります。

20 :脇P七段聖人男爵:2023/09/13 02:13:18 (1年前)  0MONA/0人

参考になるかはわかりませんが、pythonで似たような処理を書いている所のソースコードです。
https://github.com/wakiyamap/electrum-mona/blob/master/electrum_mona/blockchain.py#L321

21 :脇P七段聖人男爵:2023/09/15 20:30:34 (1年前)  0MONA/0人

>>18
今からコンパイル作業含めてやりますが、お求めの数字は
https://github.com/monacoinproject/monacoin/blob/master-0.20.3/src/pow.cpp#L279
でprintf("%d", );で出力した値と言う事でよろしかったでしょうか?

そちらと同条件で行った方が良いかと思いますので確認です。

あとその後、特に書き込みもないので解決済みと言う事でよろしいでしょうか?

22 :名無し一級:2023/09/16 08:49:27 (1年前)  0MONA/0人

>21
仕事でトラブルがありまして、出張しておりました。
返信できなくて申し訳ありません。

>19の様な経緯でDBの問題を疑っていたのですね。
>21はい変数の型で上手く表示されていない可能性もありますが、%dで見てます。

23 :名無し一級:2023/09/16 09:14:41 (1年前)  0MONA/0人

https://monacoin.org/
のサイトからバイナリをダウンロードして動かしてみます。

24 :脇P七段聖人男爵:2023/09/16 14:25:21 (1年前)  0MONA/0人

お待たせしました。

>>21で279行目と書いてましたが、これだとbnTargetの値が入ってませんでしたね。
失礼しました。281行目に変更しました。

debugの環境まで作りこむ時間が無かったのでLogPrintfで実行しています。
https://gist.github.com/wakiyamap/18e175ef270eb66000527fc38887ab81

この結果のログがこちらです。
https://gist.github.com/wakiyamap/0480e555efd08a391f32ac46ab76e719

25 :名無し一級:2023/09/16 19:50:59 (1年前)  0MONA/0人

>24
ありがとうございます。
LogPrintf("%d\n",***.ToString());で表示できるのですね。
C++が良く分からないので勉強になりました。

配布されてるバイナリを試した後にソースに埋め込んで検証してみたいと思います。こっちの方もindexの構築を何度もやり直してる気配が・・・

26 :脇P七段聖人男爵:2023/09/16 22:44:59 (1年前)  0MONA/0人

もしかしてなのですが、前にlibdb5で作成したチェーンデータが残ってませんか?
大体の場合(何か起動時のパラメータに設定していない限り)だと
~/.monacoinの中にデータが保存されますのでその中にある以下の物"""以外"""を削除して再同期試してみてください。
monacoin.conf
wallet.dat

27 :名無し一級:2023/09/17 10:14:15 (1年前)  0MONA/0人

.monacoinのフォルダは消して実験してます。
1回目
2023-09-17T00:07:32Z UpdateTip: new best=e181d5a7da0be0c1ad24e614ed4bf26bc4f6325bb6f66ee05374297ae7c14e4a height=2825961 version=0x20000000 log2_work=73.401527 tx=6328586 date='2022-11-10T05:46:09Z' progress=0.921784 cache=479.0MiB(3580558txo)
Killed

2回目
2023-09-17T01:09:08Z UpdateTip: new best=82e94f31f1f6f72826bab4edbdcbe40e0cab5d6eeb464715431a46eaa5e2fd67 height=2313070 version=0x20000000 log2_work=72.622463 tx=5266948 date='2021-04-27T12:10:43Z' progress=0.777444 cache=391.9MiB(2973539txo)
Killed

という感じで終了する様なんですがメモリが足りてないのでしょうか?

28 :脇P七段聖人男爵:2023/09/17 11:08:21 (1年前)  0MONA/0人

メモリが足りてない感じがしますね。
512MBだと厳しいので「free -h」で確かめてみると良いかもしれません。
https://ex1.m-yabe.com/archives/5230

それでメモリが十分でない場合はHDD(SSDかも?)の領域を仮想メモリにして使用することが出来ます。
https://chatnoirlibre.com/ubuntu-22-04-lts-swap/

私は大体2GBほど仮想メモリにして使用することが多いです。

29 :名無し一級:2023/09/17 12:51:00 (1年前)  0.5963MONA/1人

>脇P七段
swapファイルの設定をしたら無事に動くようになりました!
makeを通す実験もしたいのところですが、取り合えずこのバイナリで動かして先に進もうと思います。

ありがとうございました。

30 :MagicalTux三段男爵:2024/11/26 13:52:14  41.28228MONA/3人

こちら、ここで解決しました

https://github.com/monacoinproject/monacoin/pull/122

お気に入り

ログインしてMONAをもらおう

ログインすると、投稿したり、MONAをもらったりすることができます。質問したり、答えたりしてMONAを手に入れてください。

ログイン