プロトコルをアクティブ化すると、Testnetノードがクラッシュします
1 回答
- 投票
-
- 2020-03-27
エラーメッセージはトリッキーな理由で無意味です(フィックスポイントの計算が不適切であるため、エラー報告メカニズム自体がエラーを発生させます: https://gitlab.com/tezos/tezos/-/merge_requests/1376 )
とにかく、問題の根本はおそらく正しいアクティベーターキーを持っていないことです.アクティベーターの公開鍵は、
src/proto_genesis/lib_protocol/data.ml
の105行目で定義されています.(すべてのノードで)使用しているキーに対応していることを確認してください.The error message is meaningless for a tricky reason (a fixpoint is badly computed leading the error reporting mechanism to raises an error itself: https://gitlab.com/tezos/tezos/-/merge_requests/1376 )
Anyway, the root of your problem is probably that you don't have the right activator key. The public key of the activator is defined line 105 of
src/proto_genesis/lib_protocol/data.ml
. Be sure it corresponds (on all your nodes) to the key you're using.-
ご提案ありがとうございます.アクティベーターの公開鍵を `src/proto_genesis/lib_protocol/data.ml`にローカライズし、秘密鍵_activator_に関連付けられた公開鍵に置き換えました.また、同じファイルで--sandbox引数を指定すると、それに応じて公開鍵が調整されることが指定されているため、これを行う必要がある理由も理解しています.残念ながら、私はまだ同じエラーを受け取ります(ただし、あなたのヒントによると、必ずしも理由が同じであることを意味するわけではありません).公開鍵を交換しなければならない別の場所はありますか?Thank you very much for your suggestion. I localized the public key of the activator in `src/proto_genesis/lib_protocol/data.ml` and replaced it by the public key associated with the private key _activator_. I also understand why this has to be done because in the same file it is specified that if the --sandbox argument is given, the public key will be adjusted accordingly. Unfortunately, I still get the same error (which, however, according to your hint does not necessarily mean that the reason is still the same). Could there be another place where the public key has to be replaced?
- 0
- 2020-03-27
- Quantenspringer
-
その理由は、_next_protocol_( `tezos-client rpcget/chains/main/blocks/head/metadata`を介してクエリできる)が、アクティブ化するプロトコルと一致する必要があるためでしょうか?Could the reason be that _next_protocol_ - which I can query via `tezos-client rpc get /chains/main/blocks/head/metadata` - must coincide with the protocol I wish to activate?
- 0
- 2020-03-27
- Quantenspringer
-
ジェネシスからプロトコルをアクティブ化するときの次の一般的な問題は、 `〜/tezos/sandbox-parameters.json`が正しくないことです(多くの場合、これはアクティブ化しようとしているプロトコルのパラメーターではないため)それを確認しましたか?(これが私の最後のアイデアです.それが機能しない場合は、実際のエラーを取り戻すためにパッチを選択する必要があります.)The next common problem when activating a protocol from genesis is that the `~/tezos/sandbox-parameters.json` is incorrect (often because this is not parameters for the protocol you're trying to activate) Have you checked that? (That's my last idea, if that does not work, you'll have to cherry-pick the patch in order to get the real error back.)
- 0
- 2020-03-28
- Pierre Boutillier
-
どうもありがとう!アクティベーターの公開鍵を変更するというヒントを使って、実際にalphanetで試してみましたが、そこでは魅力のように機能します.しかし、carthagenetの場合、私はまだ成功していません.とりあえず、alphanetに取り組んでうれしいですが、carthagenetの問題を並行して解決しようと思います.私の最初の質問はalphanetに関するものだったので、質問に回答済みのマークを付けます.Thanks a lot! I actually tried things on alphanet with your hint of changing the public key of the activator, and there it works like a charm. However, for carthagenet I still do not succeed. For the time being, I am happy to work on alphanet but I will try to resolve the issue for carthagenet in parallel. Since my original question was for alphanet, I will mark the question as answered.
- 0
- 2020-03-28
- Quantenspringer
-
実際にはcarthagenetでも機能します.最初の試行と比較して何を変更したかはわかりませんが、Carthageプロトコルを確実に挿入できるようになりました.再度、感謝します!It actually also works for carthagenet - I have no idea what I changed compared to the first attempts, but now I can reliably inject the Carthage protocol. Thanks again!
- 0
- 2020-03-29
- Quantenspringer
異なるホスト上の2つのノードで構成されるテストネットを手動でセットアップすることができました.ノードが接続し、tezos-clientを使用して、秘密鍵を正常にインポートし(
import secret keybootstrap1 $ {BOOTSTRAP1_SECRET}
)、ノードにクエリを実行できます(rpcget/chain/main/ブロック/head/metadata
).ただし、プロトコルをアクティブ化する場合(
Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd
とProtoDemoNoopsDemoNoopsDemoNoopsDemoNoopsDemo6XBoYp
をテストしました)、エラーが発生し、:
必要なプロトコルをカルタゴに注入できなかったため、alphanetに取り組んでいます.
ノードの構成は次のとおりです:
***更新:それまでの間、パラメータ
と表示されなくなります.-sandbox=<<pathtojsonincludethe Genesis_pubkey>> を使用して実行すると、ノードにプロトコルを挿入できました.コード>.ただし、この場合、
-sandbox
パラメーターは、別のホスト上の別のノードに接続できないことを意味します. --sandboxパラメーターを指定せずにノードを実行すると、プロトコルを挿入するときに上記のエラーが発生します.また、最初に-sandbox
コマンドを使用してノードを起動し、プロトコルを挿入して、-sandbox
コマンドを使用せずにノードを再起動しようとしました.これも最初のノードで正常に機能します.-sandbox
なしで2番目のノードを起動すると、最初のノードと同期しますが、そこにプロトコルを挿入するとすぐにクラッシュし、再び上記のJson_encodingエラーが発生します. 2番目のノードを-sandbox
で開始し(したがってノード1とは別に)、プロトコルを挿入して-sandbox
なしで再起動すると、最初のノードと同期しますノードを数秒間表示しますが、その後エラーメッセージが表示されずにハングします. 2番目のノードでベイカーを実行すると、そこで何が起こっているのかわかりません...