DataSpiderSDKとNFT連携

DataSpiderとブロックチェーン　その１
## DataSpider × NFT
前回までで、DataSpiderSDKを中心に開発環境の概要を紹介しました。
今回から数回にわたり、「DataSpiderとNFT」をテーマに実現方法を紹介したいと思います。
今回は、Chainの選定とライブラリの準備まで紹介します。

## 目指すところ
NFTは昨今において、固有の電子データであることを証明する技術の1つとして、各種サービスの中で利用されるようになってきています。
NFTは、非代替性トークンとしてメディアでは紹介されています。
一般向けのサービスでは、写真やキャラクタなどにNFTを適用することにより、固有の電子データであることを証明されることから対象のデータの売買や、希少価値の証明となり一般消費者の購買意欲を増幅させる効果をもたらしていると考えられます。
一方で、業務アプリケーションにおいても、多くのユースケースが存在しています。
DataSpiderのデータ連携機能およびSDKを用いて、電子データをNFT化するまでの実装例の掲載と、主な技術要素を紹介したいと思います。

## 準備
### 開発環境
Windows10
Java SDK 1.8
Chrome（Tron wallet プラグインを利用）

### Chainの選択
ブロックチェーンのネットワークはパブリックネットワークとして、EthereumやBinance Smart Chain、Polygonなど今現在非常に多く存在すします。もちろん、プライベートネットワークでのブロックチェーンのフレームワークも存在します。
今回、DataSpiderSDKを使って接続するネットワーク※に、パブリックネットワークとしてTronを選択しました。
Tronトークンは、日本国内の一部の暗号通貨取引所で購入することができますし、開発時の利便性からTronを採用することにしました。
※ 現在稼働している各種Chainは、こちら https://chainlist.org/ のサイトで確認することができます。

### Tronトークンの入手
今回の検証では、Tron nileのテストネットワークを使用します。
Tron walletをインストールし、NileのTRONトークンを蛇口サイトから入手します。
#### TronLink（Tronトークンのwallet）のインストール
TronのWalletでもある、TronLinkをこちらからダウンロードしChromのプラングインとしてインストールします。
※ インストール手順の詳細は割愛
https://chrome.google.com/webstore/detail/tronlink/ibnejdfjmmkpcnlpebklmnkoeoihofec?hl=ja

#### Tron nileのテストネットトークン（TRX）取得
1回のリクエストで、2000TRXが入手できます。
蛇口サイトはこちら：https://nileex.io/join/getJoinPage
TRXのかにも、USDTやBTTトークンも入手することができます。
今回の検証では、TRXを取得します。

:::note info
今後、ブロックチェーン上のプログラムのデプロイや処理を実行する際に、TRXトークンが必要になるため、蛇口サイトからTRXを取得しておきましょう。
:::

上記蛇口サイトを開き、TronLinkからあなたのアドレスを入力してObtainボタンを押下することにより、TRXが転送されます。
![img001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/5ba2623a-8300-c7d3-8360-30dc14948e8b.jpeg)


### Tron Java ライブラリソースコードの入手
ライブラリのソースコードは以下リンクから取得します。
https://github.com/tronprotocol/trident
もしくは
https://github.com/dataspider-fan/trident

### Tron Java ライブラリのビルド
DataSpiderで使用するライブラリは java1.8でビルドする必要があります。
DOSプロンプトを起動し、以下の手順でビルドします。

```dot
> git clone https://github.com/dataspider-fan/trident.git
> cd trident\trident-java
> gradlew.bat
> gradlew build
```

ビルドは以上。

### Tron Java ライブラリとその他のライブラリ
abi,core,utilsの各フォルダ下の\build\libs下に各jarファイルが生成されていることが確認できると思います。

```
core-0.3.0.jar
abi-0.3.0.jar
utils-0.3.0.jar
trident-0.3.0.jar
```

:::note info
ビルドするための環境構築はこちらを参照：
「DataSpiderSDKとEclipse開発環境の構築」
https://qiita.com/dataspider-fan/items/64440c41ab458e01497c
:::

DataSpiderSDKで開発を行うにあたり、上記４種類のjarのほかに以下のjarファイルが必要です。
これらのファイルは、ローカルのgradleキャッシュディレクトリから取得します。
```
protobuf-java-util-3.21.11.jar
failureaccess-1.0.1.jar
grpc-api-1.31.0.jar
grpc-context-1.31.0.jar
grpc-core-1.31.0.jar
grpc-netty-1.31.0.jar
grpc-netty-shaded-1.31.0.jar
grpc-protobuf-1.31.0.jar
grpc-protobuf-lite-1.31.0.jar
grpc-stub-1.31.0.jar
guava-29.0-android.jar
perfmark-api-0.19.0.jar
protobuf-java-3.21.11.jar
```

上記4個のjarファイルとその他必要に応じてjarファイルをプロジェクト下のlibsフォルダ **※** にコピーします。
**※** libsフォルダの位置は以下を参照ください。また[外部jarファイルの利用についてはこちらの投稿](https://qiita.com/dataspider-fan/items/0300957106de81d9fb48)も併せて参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/a61f475e-99e7-fe27-de34-c42d48f049ba.png)

以上でライブラリの準備は完了です。

#### 付録 Tronとは
![tron_logo.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/c75ab529-2d77-3df0-e7e4-2beac063f258.jpeg)

TRON は、ブロックチェーン技術と分散型アプリケーション (DApps) を介してインターネットの分散化を加速することに専念し開発が行われています。
2017 年 9 月に HE Justin Sun によって設立された TRON ネットワークは、2018 年 5 月に MainNet がローンチされて以来、目覚ましい成果を上げ続けています。2018 年 7 月には、BitTorrent の買収とエコシステムの統合も行われました。BitTorrent は、毎月約 1 億人のアクティブ ユーザーを誇る分散型サービスのパイオニアです。TRON ネットワークは近年、ブロックチェーン上で 1 億 2,900 万人を超えるユーザーと 44 億回以上のトランザクションで驚異的な牽引力を獲得しています。さらに、TRON は、2021 年 4 月に Ethereum で USDT を追い越し、世界中で最大のステーブルコインの流通供給をホストしています。TRON ネットワークは 2021 年 12 月に完全な分散化を完了しました。
※ オフィシャルサイト：https://tron.network/index?lng=jap

## 次回は
DataSpiderSDKを使用し、[TRONアドレス発行するスクリプト](https://qiita.com/dataspider-fan/items/1fa23384ec0ccfa31461)の実装までを紹介したいと思います。