💨

XRPLでローカルで新機能をテストする(したかった)

2023/11/28に公開2

前提

  • XRPL・・・XRP(コイン)を取り扱うブロックチェーン
  • 各環境で利用可能でない新機能を試す際はローカルでサーバをスタンドアロンモードで実行する(link)
  • 検証環境: Mac(Intel)
  • XRPLでの実装は初心者

やること

投稿時点でDID機能が利用可能でないので、ローカルでのテストを試みる
developブランチにマージされているタグ:2.0.0-b4が対象

検証は失敗したが過程を記す

ローカル環境でのbuild

失敗

rippled repository(公式)のbuildドキュメントにはMacの開発者も大勢いると書いてある
https://github.com/XRPLF/rippled/blob/develop/BUILD.md
https://github.com/XRPLF/rippled/blob/develop/docs/build/environment.md#macos
を参考にbuildを進めたが、
conan installのgrpc install部分でエラーが出たため、中断する

docker image build

失敗

rippledサーバのdockerはxrpllabsofficialのものを利用(参考)
説明文にあるimage build repoをclone

git clone git@github.com:WietseWind/docker-rippled.git
cd docker-rippled

Dockerfile変更

ubuntu:latestは現在Ubuntu 22.04.3 LTSのためjammy、またDID機能は現在developブランチのみにマージされているため、nightlyにripple repositoryの記述を変更(参考)

変更前

echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \
    sudo tee -a /etc/apt/sources.list.d/ripple.list

変更後

echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb jammy nightly" | \
    sudo tee -a /etc/apt/sources.list.d/ripple.list

build

% ./go/build

バージョンの確認

% docker run -d \
  --name rippled \
  -p 80:80 \
  -v $(pwd)/config:/config \
  -e ENV_ARGS="-a --start" \
  xrpllabsofficial/xrpld:latest
% docker logs rippled # エラーがないこと確認
% docker exec rippled rippled --version
rippled version 2.0.0-b3
% docker rm -f rippled

aptで取得出来る最新がb3までということが分かった

-a --startはスタンドアロン実行時に必要なoption(参考)

接続検証

https://zenn.dev/tequ/articles/xrpl-local-mode#データの取得
のコードを実施してエラーが無いか確認

他の方法の確認

rippled repoに書かれているimageを発見(link)
tagを見たが去年が最新なので更新はなさそう

rippledのubuntu-builderでbuild

失敗

公式のubuntu builder
でbuildする

環境: ubuntuを用意

build

cd rippled/Builds/containers # Dockerfileのパス的にこの場所?
docker build -f ubuntu-builder/Dockerfile -t rippled:latest .

packaging/dpkg/build_dpkg.sh内のpathが合わず(rippled dirがDockerfile内にコピーされない)で実行できず

・・・
discordより

for building rippled,not really for running it in a container environment

とのことで最初に記述したdocker repositoryを案内されたため、ubuntu-builderを使うのは現実的でなさそう

ubuntuによるローカルbuild

失敗

https://github.com/XRPLF/rippled/blob/develop/BUILD.md
参考に実施
ec2: t3.mediumを利用

conan install .. --output-folder . --build missing --settings build_type=Releaseで以下のエラーになり失敗

rocksdb/6.29.5: ERROR: Package 'c3153bca2458fea7236349be4c2353545ef6385f' build failed
rocksdb/6.29.5: WARN: Build folder /home/ubuntu/.conan/data/rocksdb/6.29.5/_/_/build/c3153bca2458fea7236349be4c2353545ef6385f/build/Release
ERROR: rocksdb/6.29.5: Error in build() method, line 152
	cmake.build()
	ConanException: Error 2 while executing cmake --build "/home/ubuntu/.conan/data/rocksdb/6.29.5/_/_/build/c3153bca2458fea7236349be4c2353545ef6385f/build/Release" '--' '-j2'

Discussion

tequtequ

コメント時点でnightlyは2.0.0-rc2となっているようなのでDID機能を試すことができそうです

__

ありがとうございます。
dockerで2.0.0-rc2を動かせました。
DID等今回の追加機能が自分の立ち上げ方だとfeature listに載っておらず、公式アナウンス等出てきたらまた試そうと思います。