Медиа Центр

Creating offline transactions on the Ethereum blockchain using Java and Pushtx API

The Ethereum blockchain is a decentralized, public and safe platform for storing and transmitting transactions. One of its key features is the ability to create and transmit offline transactions through Pushtx API from external applications, such as mobile applications or web customers. In this article, we will explore how to create an offline transaction in Java that can be broadcast on the Ethereum blockchain using Pushtx API.

Background

Pushtx API allows developers to send gross transactions to a node in the Ethereum network, without waiting for the transaction to be checked by a colleague (ie another knot). This makes it possible to create and disseminate offline transactions from external applications. To use Pushtx API, you need to get an Ethereum’s ETHREUM wallet address that is not already used as a wallet.

Choosing between bitcoinj and pushtx

There are two popular libraries for the interaction with the Ethereum blockchain in Java: Bitcoinj and Pushtx. Here is a short comparison:

* Bitcoinj : A client library with complete features that allows you to interact with Ethereum blockchain using various protocols (for example, JSON-RPC, HTTP). However, it requires a wallet address and is not specially designed for offline transactions.

* Pushtx : A library developed by Infura, a cloud -based infrastructure provider for the interaction with the Ethereum network. Pushtx offers a simple API for creating and sending gross transactions to the nodes in the Ethereum network.

For this example, we will use pushtx.

Creating an offline transaction in Java

To create an offline transaction using Pushtx, you must:

  • Create a new instance of the Pushtx class:

Java

IMPORT COM.INFURA.PUSHTX.PUSHTX;

IMPORT COM.INFURA.PUSHTX.PUSHTRANSACTION;

Public Class offlinetransactionexample {

Public Static Void Main (String [] Args) {

// set -va URL of the Ethereum node (for example, "

String nodeurl = "

// Create a new instance of Pushtx class

Pushtx Pushtx = New Pushtx (Nodeurl);

}

}

  • Set "Walletaddress on an Ethereum wallet address that is not already used as a wallet:

`Java

// Set the Ethereum wallet address

String Walletaddress = "0xyour_wallet_address";

  • Create a new instance of the "Pushtransction" class:

Java

// create a new pushtransction object

Pushtransction transaction = pushtx.createtransction (

NEW STRING [] {"0x1234567890ABCDEF", "your transaction data"})

);

signing offline transaction

To sign the offline transaction, you must use the "Signmessage" methodPushtx ‘:

`Java

// sign the transaction using your private key

String signtransction = pushtx.signtransction (transaction, string new [] {"you_private_key"});

Offline transaction broadcast

Once you have created and signed the offline transaction, you can transmit it to the Ethereum network using Pushtx API. Here's an example of how to do this:

Java

// Create a new instance of Pushtx class with the same URL and Node wallet

Pushtx Pushtx = New Pushtx (Nodeurl);

// set the transaction signed as a useful task for broadcasting

String utload = signedransction;

// broadcasts transaction using Pushtx API

Pushtx.Broadcast (useful task, new string [] {"0x1234567890ABCDEF", "Your transaction data"});

Code samples

Here is an example of a code sample that demonstrates how to use the above steps:

` Java

IMPORT COM.INFURA.PUSHTX.PUSHTX;

IMPORT COM.INFURA.PUSHTX.PUSHTRANSACTION;

Public Class offlinetransactionexample {

Public Static Void Main (String [] Args) {

// set -va URL of the Ethereum node (eg.