Rusです。まだ生きてます。taikoのalpha-6の1/22時点での情報を書いたので共有します。
ノード建て→prover、proposerの有効化という手順を踏む。このprover, proposerは自分のアカウントでtxを生成するので、この2つを有効化することがエアドロにつながる(ノード建てだけではtx生成されないので意味ない)
絶対どこかしらで詰まるので、discordのチャンネルのログをググって解決できるくらいのリテラシーは必要。DYOR。
SGX proverの有効化に向けて
proverにはTTKOkというトークンをdepositする必要がある。現時点ではまだTTKOkが配られていないので、有効化できない。フォームに提出した人に配られるらしいので、raikoでpublic keyを生成→フォームに提出、までを記事に書いた。(docsのenable an SGX prover)
Alpha-5からの大きな変更点は、proverの有効化にSGX対応マシンが必要という点である。(ほかにもL1がsepoliaからholeskyテストネットに、L2がjolnirからkaltaに変更)
SGXとはintelの特定のCPUのみに搭載するセキュリティを向上させる機能のことらしい。そのためAMD社のCPUを搭載するcontaboサーバーは使えない。また、搭載するCPUの世代が新しいので、高額になる。
対応リストは以下の通り。cloud vendorsという欄に借りられるサーバーが紹介されている。
https://github.com/ayeks/SGX-hardware
この中での最安であるovhcloudのRise-3を今回は使用した。(ドルよりユーロ建てのほうが安く、73.14ユーロ)
1年契約だとセットアップ料がかからないが、月ごとだと初月のみ73.14ユーロ追加でかかることに注意。長期で使う人はovh, 短期間で使うなら従量課金制のazureやAWSを使おう。(AWSのC5 instanceで試算したら月250ドルあたり)
注意点として、SGX-1, SGX-2と世代が分かれており、SGX-2のみがEDMMという機能をサポートしている。このためSGX-1のみに対応しているRise-3では「EDMMがサポートされていない」というエラーが途中で出る。有志の海外勢が抜け穴を編み出したことで上記の問題は解決されたが、今後のproverの有効化にEDMMが必須になるかどうかは未発表であるため、注意が必要である。
不安(+裏技使うの面倒)なら少し高額になるがADVANCE-1,2,3のいずれかを選ぶと両方に対応しているのでおすすめ。
借りたらダッシュボード上でubuntu 22.04をインストールして普通に進めればいいが、OVHcloudはSSH接続のログイン情報を一般ユーザー権限のみ付与してくる。
また、ovhのダッシュボード上でSGXをオンにしておく必要がある。
linuxのカーネルを更新するときにroot権限が必要になる。追加する方法は以下のサイトの通り。
run a taiko nodeのページでVideo tutorialより手前までは指示通りに進める。
prerequisitesがよくわからなかったら影文鎮さんのnoteがおすすめ。
linuxコマンドの意味知りたかったらこれがわかりやすい
https://zenn.dev/odentravel/books/119560dac3e80e/viewer/860f2b
※Set the L1 archive node endpointについて、RPCはholeskyノードを自分で建てるなら、nimbus + gethの構成で進めたほうが同期で詰まらない。(docsのyoutubeの通りlighthouse+gethにすると同期詰まりしてる人多かった)
自分は同期で詰まって、./ethd configでlighthouse+gethからnimbus + gethに途中変更したが、はじめにCOMPOSE_FILEに追記したel-shared.ymlが消える。エンドポイントに設定したときにエラーが起きるので要注意。
holesky自分で建てるのめんどかったらblockpiの無料枠を使おう(1億RUだからすぐ上限いきそう)
本題のEnable an SGX proverの章に入る。
linuxカーネルまでは上記の手順の通り進める。
SGX-1しか搭載してないCPUがそれ以降を進めようとすると、Bootstrappingでエラーを起こす。よって以下の手順を行う(sgx2を無効化させる操作っぽい?)
root権限でログインし以下のコマンドを入力(クローンしてnanoというテキストエディタで起動)
git clone https://github.com/johntaiko/zeth.git
cd zeth/raiko-guest/config && nano raiko-guest.manifest.template
sgx.edmm_enable = true という行を sgx.edmm_enable = falseに書き換えるsgx.max_threads = 16 という行をsgx.max_threads = 32に書き換える
ctrl + X, Yes, Enterで書き換えた内容を保存後、以下のコマンドを入力
cd ~/zeth
DOCKER_BUILDKIT=0 docker build -t raiko:v1 .
何もエラーが出なければ以下のコマンドを入力
cd docker && nano docker-compose.yml
image: gcr.io/evmchain/raiko:latest という行をimage: raiko:v1に書き換えて保存
最後に以下のコマンドを入力
docker compose run — rm raiko — init
成功したらpublic keyが出てくるのでそれをフォームに提出
https://forms.gle/qquRq3cnGbyneV9S6
その後dockerを起動させる
docker compose up raiko -d
手順書に戻り、最下部の Test Raikoを行う。
proposerの有効化
https://twitter.com/zk_pool/status/1749806480109580659?s=20
zkpoolがprover_endpointを設置してくれたので、proposeすることができるようになりました。感謝。
proposerを有効化するだけならSGX対応マシンは不要。ノード建て自体の必要スペックは上記の通り。よってcontaboで安価でサーバーを借りて進めると良い。
まずはdocsを参考に、初期設定(dockerインストールなど)→ノード建てまでを完了させる。
https://docs.taiko.xyz/guides/run-a-taiko-node/
その後、nano .envとコマンドを入力し、各行を以下のように変更し、ctrl + X, Yes, Enterで保存する。
ENABLE_PROPOSER=falseをtrueに変更
L1_PROPOSER_PRIVATE_KEY=以降に自分の秘密鍵を入れる(0x不要)
PROVER_ENDPOINTS=http://taiko-a6-prover.zkpool.io:9876と設定
設定したウォレットでholesky上でproposeのtxを送るので、必ずガス代のETHを入れておく
最後に以下のコマンドでdockerを再起動してログにて Propose transactions succeededと表示されたら完了
sudo docker compose down && sudo docker compose up -d && sudo docker compose logs -f taiko_client_proposer