Как я могу создать транзакцию в биткойне?

Я не могу создать действительную транзакцию в bitcoinj, Ошибка, которую я получаю из сети:

mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation)

Вот мой код:

package mine;

import java.util.*;
import java.io.*;
import java.nio.charset.*;

import org.bitcoinj.utils.*;
import org.bitcoinj.core.*;
import org.bitcoinj.script.*;
import org.bitcoinj.params.*;
import org.bitcoinj.wallet.*;
import org.bitcoinj.kits.*;

public class Mine
{
  static final Charset UTF_8 = Charset.forName("UTF-8");

  public static void main(String[] args) throws Exception
  {
    NetworkParameters params = TestNet3Params.get();
    String filePrefix = "challenge-standalone-testnet";
    WalletAppKit kit = (new WalletAppKit(params, (new File(".")), filePrefix));

    kit.startAsync();
    kit.awaitRunning();

    Wallet wallet = kit.wallet();

    // to get coins: https://testnet.manu.backend.hamburg/faucet
    final String faucetReturnAddressString = "2N8hwP1WmJrFF5QWABn38y63uYLhnJYJYTF";
    System.out.println("current receive address: " + wallet.currentReceiveAddress());
    System.out.println("balance: " + wallet.getBalance().toFriendlyString());

    Address faucetReturnAddress = (new Address(params, faucetReturnAddressString));

    SendRequest request = SendRequest.to(faucetReturnAddress, params.getMinNonDustOutput());

    request.tx.addOutput(params.getMinNonDustOutput(), ScriptBuilder.createOpReturnScript("hello_world".getBytes(UTF_8)));



    wallet.completeTx(request);

    wallet.commitTx(request.tx);

    kit.peerGroup().broadcastTransaction(request.tx).broadcast().get();

    System.out.println("current receive address: " + wallet.currentReceiveAddress());
    System.out.println("balance: " + wallet.getBalance().toFriendlyString());
  }
}

Есть идеи, что не так? (Я пытался вынуть дополнительный Script вывод, но это не помогло).

0 ответов

Другие вопросы по тегам