「データを永続的に保存したい」
「分散型データストレージを試してみたい」
「NFTをMintするためにArweaveを利用する必要がある」
このような場合には、この記事の内容が参考となります。
この記事では、Arweaveへデータをデプロイする方法を解説しています。
本記事の内容
- Arweaveへのデータのデプロイに必要なモノ
- arweave-deployのダウンロード
- arweave-deployによるファイルアップロード
それでは、上記に沿って解説していきます。
Arweaveへのデータのデプロイに必要なモノ
Arweaveにデータをデプロイする場合、以下が必要です。
- デプロイ用のツール・ライブラリ
- Arweave(AR)トークン
つまり、専用ツールと仮想通貨が必要ということです。
今回は、できる限り簡単にできる方法を説明します。
そこで、次のツールを利用します。
おそらく、下記ツールが最も簡単な方法だと思います。
Arweave Deploy(以下arweave-deployと呼ぶ)
https://github.com/ArweaveTeam/arweave-deploy
ツールは、上記のモノを利用します。
あとは、Arweave(AR)トークンが必要となります。
そのためには、まずはWalletが必要です。
ArweaveのWalletは、Chromeの拡張機能が存在しています。
FireFoxなどもあるようですが、Chromeで説明を進めます。
Arweave – Chrome ウェブストア
https://chrome.google.com/webstore/detail/arweave/iplppiggblloelhoglpmkmbinggcaaoc
このWalletにArweave(AR)トークンを送金しましょう。
Binanceなどの海外の取引所において、Arweave(AR)は扱われています。
「えー、面倒くさーい」
このように思う気持ちは、わかります。
そんな方は、次の記事をご覧ください。
なんと、無料でArweave(AR)を取得できるのです。
無料で貰えるのは、0.02AR(2022年1月時点)となります。
これだけあれば、十分にArweaveへのデータのデプロイを検証できます。
以上、Arweaveへのデータのデプロイに必要なモノを説明しました。
次は、専用ツールのarweave-deployをダウンロードします。
arweave-deployのダウンロード
arweave-deployは、もうメンテナンスされていません。
arkbというツールが、代わりにオススメされています。
ただ、arkbはnpmでしかインストールできません。
npmは、Node.jsをインストールしたら利用可能です。
しかし、今回は簡単にデプロイすることを目指しています。
そのため、バイナリが公開されているarweave-deployを利用します。
ということで、バイナリをダウンロードします。
まずは、次のページにアクセス。
GitHub – ArweaveTeam/arweave-deploy
https://github.com/ArweaveTeam/arweave-deploy
ページ内に、以下の表示があります。
ここで該当するOSを選択。
そうすると、自動的にバイナリファイルのダウンロードが始まります。
Linux系の場合は、ダウンロードしたファイルに実行権限を付与しておきましょう。
$ chmod +x arweave
動作確認は、次のコマンドで可能です。
$ ./arweave -v 1.8.2
バージョンが表示できます。
そして、使い方を知りたい場合は以下を実行。
$ ./arweave -h Usage: arweave [options] [command] Options: -v --version Show the version number --host <hostname_or_ip> Set the network hostname to use --protocol <protocol> Set the protocol to use (http or https) --port <port_number> Set the network port to use --timeout <milliseconds> Set the network request timeout --key-file <key_file_path> Path to an Arweave key file --winston Display winston values instead of AR --debug Enable additional logging -h, --help output usage information Commands: deploy [options] <file_path> Deploy a file deploy-dir [options] <dir_path> Deploy a directory send <amount_in_ar> <to_arweave_address> Send AR to another wallet status <transaction_id> Check the status of a given transaction ID balance Get the balance of your wallet. network-info Get current network info key-create <output_file> Create a key file for a new wallet key-save <key_file_path> Save a key file and remove the need for the --key-file option key-export Decrypt and export your key file key-forget Forget your saved key file key-inspect Inspect a key file package [options] <file_path> <packaged_output_path> Package a web app into a single file Examples: Without a saved key file arweave deploy index.html --key-file path/to/my/keyfile.json arweave save-key --key-file path/to/my/keyfile.json arweave balance --key-file path/to/my/keyfile.json With a saved key file arweave deploy index.html arweave balance Command specific options and flags: arweave {command} --help, e.g. arweave deploy --help More help: https://github.com/arweaveTeam/arweave-deploy
以上、arweave-deployのダウンロードを説明しました。
次は、arweave-deployによるファイルアップロードしましょう。
arweave-deployによるファイルアップロード
arweave-deployでファイルをアップロードするために、以下のファイルを用意します。
- Walletキーファイル
- デプロイする画像ファイル
Walletキーファイルは、拡張機能から取得できます。
まず、拡張機能を起動します。
作成したWalletが確認できます。
利用するWalletをクリック。
次のようなメニューが出てきます。
「Export Key」を選択。
ポッポアップが現れます。
Wallet作成時に入力したパスワードを入力します。
入力が完了したら、「Download Wallet Keyfile」ボタンをクリック。
パスワードが正しければ、Walletキーファイルをダウンロードできます。
もう一つのファイルは、各自で適当に用意してください。
今回は、犬の画像(dog.jpg)を用意しました。
では、arweave-deployにある場所にすべてのファイルを集めます。
これは、単純にわかりやすいようにしています。
$ tree . ├── arweave ├── arweave-key-YrAy1d●●●B0Hw.json └── dog.jpg 0 directories, 3 files
準備が整ったので、ファイルアップロードを行いましょう。
次のコマンドを実行します。
$ ./arweave deploy dog.jpg --key-file arweave-key-YrAy1d●●●B0Hw.json
コマンドを実行すると、途中で止まります。
$ ./arweave deploy dog.jpg --key-file arweave-key-YrAy1d●●●B0Hw.json File Path: dog.jpg Size: 840.78 kB Transaction ID: FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Price: 0.000191845766 AR Tags: - Content-Type:image/jpeg - User-Agent:ArweaveDeploy/1.8.2 Wallet Address: YrAy1d●●●B0Hw Current balance: 0.020000000000 AR Balance after uploading: 0.019808154234 AR Carefully check the above details are correct, then Type CONFIRM to complete this upload
デプロイにかかるコストの確認ですね。
「0.000191845766 AR」の料金がかかるということです。
日本円にすると、0.82円となります。
「CONFIRM」と入力して、Enterを押せば承認したことになります。
Carefully check the above details are correct, then Type CONFIRM to complete this upload CONFIRM Your file is deploying! 🚀 Once your file is mined into a block it'll be available on the following URLYou can check its status using 'arweave status FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY'https://arweave.net/FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY
とりあえず作業は完了しました。
アップロードしたファイルのURLは、「https://arweave.net/TransactionID」となります。
今回であれば、次のURLということです。
https://arweave.net/FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY
進捗状況は、「arweave status TransactionID」で確認できることを教えてくれています。
早速ですが、進捗状況を確認しましょう。
$ ./arweave status FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Trasaction ID: FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Status: 202 Pending ⛏
なんと、202が返って来ています。
なかなか、202なんてお目にかかれないのではないでしょうか?
202 Accepted
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/202
202の意味は、以下。
リクエストを受け取ったが、処理が完了していないことを表します。
要するに処理中ということです。
やはり、データを分散させて保存するのには時間がかかるのでしょう。
しばらく経ってから、状況を確認すると200が返ってきます。
$ ./arweave status FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Trasaction ID: FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Status: 200 Accepted 🚀 - Block: 855682 - Block hash: 9UYozMztSyocwuMj6LaYLckSV0RhGSHulVK8aPWckRDvY6wCsxReEQoeVFWK_lnj - Confirmations: 3 URL: https://arweave.net/FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY Block URL: https://arweave.net/block/hash/9UYozMztSyocwuMj6LaYLckSV0RhGSHulVK8aPWckRDvY6wCsxReEQoeVFWK_lnj Block explorer URL: https://viewblock.io/arweave/block/855682
これで、dog.jpgは永久に保存されることになりました。
0.82円を払っただけで、dog.jpgは永遠に存在し続けることになります。
理屈の上ではですけどね。
以上、arweave-deployによるファイルアップロードを説明しました。