【Arweave】分散型データストレージへのデータのデプロイ

【Arweave】分散型データストレージへのデータのデプロイ 仮想通貨・暗号資産

「データを永続的に保存したい」
「分散型データストレージを試してみたい」
「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 URL

https://arweave.net/FFqyYqWKFOVwTyIxWaYeG1_Cji0l6-E_ckV9Ha05jpY
You can check its status using 'arweave status 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によるファイルアップロードを説明しました。

タイトルとURLをコピーしました