NEO交換オフライン財布は、署名ブロックチェーン[JAVA]を開発

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/qq_18537055/article/details/98681120

はじめに:

        ジョブはので、私は彼に到達することを決めたときに2019年3月、私の圧倒的な「ブロックチェーン」ネットワークストームでは、ヘルプの別に一つだけの耳は、3月中旬には...失われますすべての後、馬の叔父は言った:唯一の人工知能(AI)とブロック鎖の将来に......私は最初のコマンドはNEO(小さな蟻通貨)冷たい財布を行うことです受け取ったが、私も公式サイトを見ました冷たい財布を言うことではない何の署名は、それはすべてのオンライン情報がいくつかの点で、ああ良い面...の多くの使用を受け取っていないませんが、最初のタスクのエントリは、それをエスケープしますか?停止し、あなたの時間を取りますか?

        通貨の開発で、あなたは自分の取引プロセスに精通している必要があり、私はあまりにも多くを歩いたので、あなたは...迂回ません。

ステップ1:自分の財布の1を作成kefuduanダウンロード

        ダウンロード:https://github.com/neo-project/neo-gui/releases私はダウンロード:neo-gui-windows.zipそうでない場合(聖歌、すべての中国を言うことはありませんウォレットを作成し、それをあきらめ、財布を作成するには、このステップでは)と呼ばれます

        それは参照試験ネットワークとなりkefuduanお財布・ウォレットを作成する前に:https://docs.neo.org/zh-cn/network/testnet.html

ステップ2:テスト用コインを要求

        アプリケーション住所:https://neo.org/testcoin/apply  対応する公開鍵で財布を作成するために、最初のステップの後にパブリックアドレスを記入してください最後尾に注意をので、あなたは、公開鍵を持っている、またはあなたがテストを受けましたあなたがメッセージのテストBを受信するまで待って、あなたは彼がそれを必要とし、それらの文書をよく見に申請に行く、お金を取る(と私はずっと苦しんでいます)ではありません

ステップ3:メールアドレスに基づいて、複数の署名と転送を作成します。

        最初のステップは、あなたがトランジットにあなたの最初のステップを直接転送に署名のリンクが複数あると言われています。あなたはターン新たに作成したウォレットに下る、あなたはこれらの手順は、秘密鍵署名が表示されないではありません、それは成功の直接の署名であることがわかります。
        今すぐ再作成新しい財布Bは、それを取り除くに直接対処する契約を作成して、アドレスを生成しました。次のように取得するには、Aの内側にお金を入れて
、このステップは戻ってデータを解析し、そのコピーを維持することは非常に重要である、他の人の署名ドームを理解する大きな助けとしています。

ステップ4:署名と放送

        :財布に署名する最初のステップでは、以下のように(アドレスは、そうでない場合、あなたの財布を転送し、署名されていない関係に対応していませんでした、契約でなければなりません)

あなたは、トランザクションが成功します参照してください。しかし、これはああ達成するために私達と少しオフライン署名関係の顧客サービス側で、残りはQuickenの労働者が働く安心.....

ステップ5:神ドームをダウンロード

        とき、私は、このアドレスをも参照してください。https://www.jianshu.com/p/286c3cca3048(多くのものがあるうち)
        の内部に興味を持って社会で見つかった:NEO DevConの博士Guil導入Neow3j Javaライブラリを
        ダウンロードしますプロジェクト:https://github.com/neow3j/neow3j
        基本的に達成公式API内部でなく、カザフスタンだった実現しませんでした

ステップ6:分析

        この手順は非常に重要であり、io.neow3j.examples.ransactions.CreateRawTransactionMultiSig.javaのドームを見つけるために、これは私がJavaコンテンツの顧客サービス側の署名を転送する事の署名である....これは、マルチ署名があります今、これらのデータの意味が何であるかを見て(これは、Baiduのヘクタールを説明するために多くを行うことはありません):

WIFはプライベート財布で、財布をすることによって見つけることができ、あなたがio.neow3j.examples.utils.LoadWalletで取得することができます
ecKeyPair3することは不必要ですそれはあなたが一度だけ署名した場合、ecKeyPair2も殺すことができる、殺すことができます。
資産取得したID:neow3j.getAccountState

今話:アドレス出力とは何ですか?住所::私は、取引の顧客サービス側解決するために使用https://sdk.nel.group/#を進で、解決のトランザクション内のリンクを置く(私は良いが、保存することを言う)そのレコードにお金の署名を解決し、私が始まりましたトランザクションの検証エラーが平均よりも実質的に、私はエラーの署名OK、放送に入社し、それはプライベートだと思いました。長い間、このインクでは......再び(Baiduはそれが何を意味するかを理解する)ネオ髪がUTXOある公式の文書を参照してくださいので、私はアドレス情報を確認するためにします。https://neoscan-testnet.io/api/ test_net / V1 / get_balance /アドレスプラス署名髪型unspent.txid、彼、そして次のテスト、放送の成功、為替取引の成功と推定しています。そして、私は(署名後に実装された)私のオフライン署名プロジェクトに追加しました:

終了:フィニッシュライン署名

@RequestMapping("/neo/offline")
public class NeoController {
    @Autowired
	public NeoInfo NeoInfo;
    
    @ApiOperation(value = "NEO离线签名", notes = "NEO离线签名")
	@RequestMapping(value="/sign", method = RequestMethod.GET)
    public String sign(NeoParam param) {
		ECKeyPair ecKeyPair = ECKeyPair.create(WIF.getPrivateKeyFromWIF(NeoInfo.getWif()));
		
		String multiSigAddress = Keys.getMultiSigAddress(1,ecKeyPair.getPublicKey());
		
		RawVerificationScript verificationScript = Keys.getVerificationScriptFromPublicKey(1,ecKeyPair.getPublicKey());
		
		RawTransaction rawTx = RawTransaction.createContractTransaction(
                null,
                null,
                Arrays.asList(
                        new RawTransactionInput(param.getUnspentTxid(), 0)
                ),
                Arrays.asList(
                        new RawTransactionOutput(0, param.getOutputAssetId(), param.getOutValue(), param.getInputAddress()),
                        new RawTransactionOutput(1, param.getOutputAssetId(), param.getChangeValue(), multiSigAddress)
                )
        );
		// 序列化基本原始事务
        // 重要:没有脚本!
        byte[] rawTxUnsignedArray = rawTx.toArray();

        // 在三种可能的签名中添加两个签名——这里的顺序很重要!
        List<RawInvocationScript> rawInvocationScriptList = new ArrayList<>();
        rawInvocationScriptList.add(new RawInvocationScript(Sign.signMessage(rawTxUnsignedArray, ecKeyPair)));
        rawTx.addScript(rawInvocationScriptList, verificationScript);
        byte[] rawTxSignedArray = rawTx.toArray();
		return Numeric.toHexStringNoPrefix(rawTxSignedArray);
    }
}

デジタル通貨との最初の接触は、専門用語を知らない多く、.....他のコインを開始するための努力を続けることが、その後の、回り道をたくさん取る
バックみんなと一緒に財布の共有に、答えを340 697 945:財布プラスグループを開発しました学習。

おすすめ

転載: blog.csdn.net/qq_18537055/article/details/98681120
おすすめ