DataSpiderSDKを使用したTRONアドレスの生成

DataSpiderとブロックチェーン　その２
## DataSpiderSDKを使用したTRONアドレスの生成
前回では、SDK開発に必要なライブラリをそろえました。
今回は、TRONアドレスの生成アダプタを作成します。

## アドレスの重要性
このアドレスは、今後スマートコントラクトを制御するために非常に重要な役割をはたします。
権限の制御をはじめ、各種処理を行う際にこのアドレス情報が必要となります。
アドレス情報は2種類あり、公開鍵（パブリックアドレス）と秘密鍵（プライベートキー）を管理する必要があります。
よって、この公開鍵と秘密鍵を出力するアダプタを実装したいと思います。

## 開発環境
* Windows 10 x64
* Java SDK 1.8
* Pleiades: 統合開発環境 Eclipse Win x64
* Ubuntu18.04 （※）
※ 第3回目以降で、Tronスマートコントラクトのデプロイで使用予定

## 開発準備
開発するにあたり、DataSpider本体およびDataSpiderSDKの開発環境が必要です。
環境を構築する手順はこちらを参照ください。

* DataSpider本体およびDataSpiderSDKの入手
https://qiita.com/dataspider-fan/items/eb850b6e185b9fffdd33

* Exclipse開発環境構築
https://qiita.com/dataspider-fan/items/64440c41ab458e01497c

* Tron java ライブラリの用意
https://qiita.com/dataspider-fan/items/797dca4dbb1e772984a2

## 前提知識
* JavaSEでのコーディングスキル
* 暗号通貨ウォレット、アドレスの概念
* DataSpiderのスクリプト作成
* DataSpiderアダプタの利用方法
* DTP(Illustrator、photoshop)

## なにをするか
DataspiderSDK×TRONライブラリの利用という観点で、HelloWorldのような実装を行います。

## 実装内容
TRONライブラリを使用し、公開鍵と秘密鍵を生成します。
生成した、公開鍵と秘密鍵をデバッグ画面に表示させます。

## 実装手順
1\. SDK付属の「hello_world_adapter」をワークスペースに読み込みます。
> hello_world_adapterをEclipseのワークスペースに登録する方法は以下を参照：
> [Hello World Adapterの登録のページ](https://qiita.com/dataspider-fan/items/64440c41ab458e01497c#hello-world-adapter%E3%81%AE%E7%99%BB%E9%8C%B2)


2\. Tron jarファイルの読み込み
プロジェクト・エクスプローラの参照ライブラリに4つのjarファイルが含まれることを確認します。
また、その他必要となるjarファイルを外部jarとして認識させます。
外部jarファイルの利用および必要となる[その他のjarファイルについてはこちら](https://qiita.com/dataspider-fan/items/797dca4dbb1e772984a2#tron-java-%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%85%A5%E6%89%8B)を参照ください。

3\. 公開鍵と秘密鍵を取得するロジックを記載する
org.tron.trident.core.key.KeyPairをインポートし、HelloWorldAdapterOperationクラスに以下のコードを記載します。

##### HelloWorldAdapterOperation.java
```java
package com.appresso.ds.dp.modules.adapter.helloworld;

import java.util.HashMap;
import java.util.Map;

// ★TRONライブラリを指定★
import org.tron.trident.core.key.KeyPair;

import com.appresso.ds.common.fw.LoggingContext;
import com.appresso.ds.dp.spi.Operation;
import com.appresso.ds.dp.spi.OperationContext;

public class HelloWorldAdapterOperation implements Operation {
	private final OperationContext context;

	public HelloWorldAdapterOperation(OperationContext context) {
		this.context = context;
	}

	@Override
	public Map execute(Map inputData) throws Exception {

        // ★TRONライブラリを使用し、公開鍵と秘密鍵を生成します★
		KeyPair keyPairGenarate = KeyPair.generate();
		String publicAddress =keyPairGenarate.toBase58CheckAddress();
		String privateKey = keyPairGenarate.toPrivateKey();

        // ★生成した内容をDataSpiderの実行ログに出力します★
		LoggingContext log = context.log();
		log.finest("*******************");
		log.info("** Tron address **");
		log.info("PUBLIC_ADDRESS : " + publicAddress);
		log.info("PTIVATE_KEY : " + privateKey);
		log.finest("*******************");

		return new HashMap();
	}

	@Override
	public void destroy() {
	}
}

```
実装は以上です。

4\. DataSpiderのサービスの停止
![service.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/c0cc6d4b-d552-aad1-7aa5-86655919f381.png)

5\.ビルドとインストール
プロジェクト・エクスプローラからbuild.xmlを右クリックし、メニューから実行>Andビルド をクリックします。
![build.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/8114fe63-9db2-d383-e5c0-93d23388ddf7.png)
Eclipseのコンソールタブに「」が表示されればインストールまで完了です。
![build2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/34cb0ad2-a9b8-6f0e-8c65-8820e4c52bcd.png)
なお、DataSpiderSDKは、Antを使用します。ビルドとインストール処理の設定はこちらを参照ください。
[Antターゲットの設定とインストール実行のページ](https://qiita.com/dataspider-fan/items/64440c41ab458e01497c#ant%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%AE%9F%E8%A1%8C)

## 動作確認
1\. DataSpiderサービスの起動
![service_on.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/e502f2e4-8689-870b-fd6c-9a29b03f1fe9.png)

2\. DataSpiderを起動
スクリプトを新規作成し、ツールパレットの下部からHelloWorldアイコンをスクリプトキャンバスに配置します。
配置後、てんとう虫ボタンをクリックすると、発行された公開鍵（アドレス）と秘密鍵情報が表示されます。
![script2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2849535/a8a20aac-c3d7-31aa-118e-aabca519e372.png)

:::note info
上記ソースコードは、こちらに公開しています。
Github : [dataspider-fan/qiitacode](https://github.com/dataspider-fan/qiitacode/tree/main/HelloWorld)
参考にしていただければと思います。
:::

## 次回は
ここまでで、DataSpiderSDK上でTronライブラリを使用したアダプタの開発ができることが分かりました。
次回は、[アドレスを生成するアダプタをブラッシュアップ](https://qiita.com/dataspider-fan/items/a4a32b668b780875d8ad)したものを紹介します。