Wait a moment...

【NEM技術勉強会】8.4 委任ハーベスターの自動検出【Symbol白書】

nem33.70xem (5)
574
0
2020-03-16 08:49:00
【NEM技術勉強会】8.4 委任ハーベスターの自動検出【Symbol白書】

NEMは、自分でノードを運用していなくても、委任ハーベストという形でブロック承認に貢献できます。その際に、自分のアカウントとリンクした委任用のアカウントの秘密鍵を、自分の好きなノードに登録することができます(残高のあるアカウントの秘密鍵をそのまま預けるのは危ないです)。今回は、その手続きがどのようになっているかについてです。


8.4 委任ハーベスターの自動検出

 

user:enableDelegateHarvestersAutoDetection設定がオンになっていれば、サーバーは特別な送付メッセージ(メッセージはクライアントとサーバー間で使われる通信手段のひとつです。16章で詳しく説明されます)を通じて、委任ハーベストのアカウント登録リクエストを受け入れることができる。サーバーは、user:bootPrivateKeyアカウントに送られるすべてのメッセージを検査している。マジックバイトである0x98E5BF64C771CCFEで始まる登録リクエストメッセージは、一旦ファイルキューに書き込まれて、その後の処理を待つ。

 

時間とともに、ファイルキュータスクが順番に処理されていく。それぞれのメッセージは、候補となる委任ハーベストアカウントの秘密鍵を含んでいるだろう(脚注;このメッセージのフォーマットについては、プロジェクトコードや開発者ドキュメントを参照)。委任ハーベストアカウントの秘密鍵は、サーバーのboot公開鍵によって暗号化され(つまりサーバーの秘密鍵でしか復号できない)、外部から不正に秘密鍵を盗み出せないようになっている。不要なデータを含むメッセージはすべて無視され廃棄される。

 

検査をパスしたメッセージは、秘密鍵が復号されて処理に回される。もし可能な場合、委任ハーベストアカウントの秘密鍵は、そのサーバーのハーベストに利用されることになる。サーバーは、harvesting:maxUnlockedAccountsの数まで委任ハーベストアカウントを受け入れることができる。この制限いっぱいまで受け入れた後は、harvesting:delegatePrioritizationPolicy(委任ハーベスト優先順位ポリシー)の設定に従って、新しいアカウントを受け入れるかどうか判断する。このポリシーがAge(古さ)に設定されている場合は、先着順である。つまり、新しいアカウントは制限数を超えて登録されることはできない。ポリシーが、インポータンスに設定されている場合は、大きなインポータンス値を持つアカウントが優先される。つまり、低いインポータンスを持つアカウントの代わりに、新しい高いインポータンスを持つアカウントが登録できる。

 

許可されたアカウントの登録情報は、harvesters.datファイルに保存される。一度許可を受けた委任ハーベストアカウントは、サーバーが再起動されても消えることはない(NIS1では消えてました)。サーバーは、受け入れ中の委任ハーベストアカウントの秘密鍵を使っているかどうかについて、明示的には確認のアナウンスはしない(インポータンス優先設定の場合は、突然解除もあり得ますから、委任した側は生存確認のためのなんらかのリクエストを送る必要があるということでしょうか)。


ここで重要なのは、ノード運用者はNIS1の時のように先着順で受け入れるか、インポータンスが高いアカウントを優先的に受け入れるかを選べる点と、サーバーの再起動によって登録が勝手に解除されることはないという事でしょうね。インポータンス優先サーバーに委任した場合は、時々チェックしないと高インポータンスのアカウントに追い出されちゃうこともありそう。

 

目指せ北海道

この記事を書いた人
趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。暗号通貨はまだまだ初心者。 nemlogに何を書こうかいろいろ考えたのですが、まずはバイクで動画配信をするための工夫や楽しさ、充実感などを伝えられたらと思ってはじめました。ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの白書を訳したりもしています。 本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使っています。管理システムの名称は「ShizuiNet」。NEM.ioのAlexさん、Jeffさんと名刺交換&握手できたのが心の宝物。