/

如何生成賬戶和發送交易

# 如何生成賬戶和發送交易

在本指南中,GetBlock 團隊將闡明我們的用戶如何實際連接到區塊鏈節點。 在區塊鏈中生成賬戶和發送交易是我們想要介紹的兩個首要操作。

在區塊鏈中,“賬戶”應該被稱為一對私鑰和公鑰。 區塊鏈通過這些密鑰對“識別”他們的用戶和余額。

與傳統計算解決方案中的登錄/密碼對不同,在現代區塊鏈中,每個帳戶只能使用私鑰恢復。

因此,要將交易廣播到去中心化網絡,我們首先需要創建(或恢復)我們的帳戶。

創建帳戶

首先,我們需要設置一個屬於每個 GetBlock 用戶的 API 密鑰。 整個交互集是通過 Web3.js 庫組織的。 在下面的演示中,我們嘗試在 Binance Smart Chain, 世界領先的交易所幣安的可編程區塊鏈:

const Web3 = require('web3');
const apikey = process.env['apikey'];
const network = 'testnet'; // Change to mainnet for production
const chainId = 97; // 97 is BSC testnet, 95 is BSC mainnet
const node = 'https://bsc.getblock.io/${network}/?api_key=${apikey}';
const web3 = new Web3(node);
// Generate new address and private key
const accountTo = web3.eth.accounts.create();
console.log(accountTo);

這就是我們在 BSC 測試網中創建帳戶的方式。 我們可以使用新的密鑰對生成一個新帳戶,也可以僅從私鑰中恢復一個。

// Restore account from private key
const privateKey = process.env['privateKey'];
const accountFrom = web3.eth.accounts.privateKeyToAccount(privateKey);

您可能會問,當我們與 Binance Smart Chain 交互時,“eth”是什麼意思? 沒錯,它反映了幣安智能鏈與以太坊虛擬機完全兼容的事實。

發送交易

在區塊鏈中,交易應該被簽名(授權)以“包含”到區塊鏈中(由礦工或驗證者的共識確認)。

這是我們的交易是如何創建的。 0.01 ETH 用於演示。

const createSignedTx = async (rawTx) => {
rawTx.gas = await web3.eth.estimateGas(rawTx);
return await accountFrom.signTransaction(rawTx);
}

const sendSignedTx = async (signedTx) => {
// You can use signedTx.rawTransaction as params for
// calling eth_sendRawTransaction JSON-RPC method
web3.eth.sendSignedTransaction(signedTx.rawTransaction).then(
console.log
);
}

const amountTo = "0.01" // ether

這就是交易在被包含在區塊鏈之前的樣子。 一旦簽名,就可以發送給礦工。

const rawTx = {
to: accountTo.address,
value: web3.utils.toWei(amountTo, 'ether'),
chainId: chainId
};

createSignedTx(rawTx).then(sendSignedTx)

就是這樣:您的帳戶很好,因為它的交易已成功提交!

如果您有興趣運行分叉此代碼,請不要猶豫再檢查一次: https://replit.com/@getblock/BSCKeyGenAndSignTx

GetBlock.io

立即访问 40 多个区块链节点! GetBlock 为最流行的加密货币节点提供快速可靠的连接。

订阅

電子郵件無效

2019 - 2021 GetBlock