Kumacoinのフォーク問題(3069661) ==== Kumacoinがブロック高3069661でフォークしたまま戻らない問題が発生した。 ```text A: 6b5881bfa0d4252bba6bf0db67a96853be88e4d1d02caea8eba4147a9da821ef B: 04e4abb0d2ba8472ac4e304e296bb99d58f44f6482c312648baec93ac17802b0 ``` わかっていること ---- * 問題が発生したのは2020/7/21、問題を確認したのが2020/8/2、確認時点では1万ブロック経過前でReorg可能。 * Blockexplorerによると、AチェーンにいたのがReiwaPool、MiningBeaver、kumabook.electrum-mona.orgの3か所。Bチェーンにいたのがspbird、mofumofume、Daisuke、その他のCoind達と考えられる。これに関しては情報が集まらず確実だとは言えない。 * Coindの判断する最善のチェーンはBである。 * Namuyangの管理するCoindのdebuglogにはAチェーンの情報は見当たらない謎がある。 * 問題発覚時点ではMiningBeaverは機能不全に陥っておりAチェーンにいたが、後に再起動されBチェーンにReorgされた。 原因 ---- 原因は二つのうちのどれか * ASICが消えたことでPoWによるチェーンの牽引力が弱まり巨大な採掘力を持つ旧ノードの影響が復活してフォーク先を伸ばしている説。 * 前回のフォークの対応でMiningBeaverを中心据えた体制をとっていたものの中心がしばらく落ちた事で独立しチェーンを伸ばしたまま戻らない説。 解決法 ---- どのみち旧ノードを締め出さないと解決しない。 ASICによる牽引を一時的な対処としてしていたがKuma2が延期されているので根本的な解決が望まれる。そこでハードフォークを行い旧ノードの影響を除いたうえで前回構築した体制を解除し元の分散ネットワークに復帰する。具体的には、特定のブロック高でブロックのバージョンを1つ上げて、新ノードはそのバージョン以下のブロックを受け入れないようにする。 実行するには ---- ちょっと嫌になってしまった。 * ~~知り合いに外注をBTCで依頼する~~ * ~~ブロック高3069660でスワップしたと判断しKuma2に移行する~~ 8/5追記:自分で改造できました。 具体的な手順(8/6追記) ---- ~~今のKumaは落ちるところまで落ちたので記念に3069661にてハードフォークを行う。このブロックのCoinbaseには何かしらのメッセージ(報酬先アドレス)を入れチェックポイントとして設定する。メッセージは公募する。これは一種のPoBなので[Proof of Burn](http://gobittest.appspot.com/ProofOfBurn)にて生成してもらいたい。内容に制限はなく"KumacoinisShitcoinxxxxxxxxxy1DWbpH"でも可能とするぐらいやけくそな気分。~~ 何度も方針を変えて申し訳ないです。(8/8追記) 前回このように手順を示しましたが、Qtビルドで時間をつぶしていましたら正気を取り戻しましたので正攻法に変えます。Bチェーンにおいて3086000よりBlockVerが5以上のBlockのみしか受け入れないハードフォークを行います。このブロック高へは`3500*1.5/(24*60)`=3.5日で至ります。8/8現在まだクライアントは用意できていませんが数日中に用意いたします。もし手間取りましたらフォークは延期されます。 (8/9追記)クライアントソフトを公開しました。 https://github.com/kumacoinproject/kumacoin/releases/tag/v0.8.9.9 他にも提案があればよろしくお願いします。