区块链技术的发展已经引起了广泛的关注,而以太坊是最受欢迎的区块链之一。Web3.js 是以太坊的 JavaScript 库,可以用于在浏览器和服务器上与以太坊区块链进行交互。在本文中,我们将介绍如何在 Express.js 中使用 Web3.js 操作以太坊区块链。
准备工作
在开始之前,我们需要确保已经安装了 Node.js 和 npm。我们还需要安装以下依赖:
- express:用于创建服务器和路由。
- web3:用于与以太坊区块链进行交互。
可以使用以下命令安装这些依赖:
npm install express web3
连接以太坊节点
在我们可以与以太坊区块链进行交互之前,我们需要连接到一个以太坊节点。可以使用以下代码连接到一个节点:
const Web3 = require('web3'); const web3 = new Web3('https://mainnet.infura.io/v3/your_project_id');
在这里,我们使用 Infura 提供的公共节点来连接到以太坊主网。您需要将 your_project_id
替换为您的 Infura 项目 ID。您也可以使用自己的本地节点或其他公共节点。
创建以太坊账户
在进行任何交互之前,我们需要创建一个以太坊账户。可以使用以下代码创建一个新账户:
const account = web3.eth.accounts.create(); console.log(account.address); // 账户地址 console.log(account.privateKey); // 账户私钥
这将创建一个新的以太坊账户,并输出账户地址和私钥。
发送以太币
现在我们已经连接到以太坊节点并创建了一个账户,我们可以发送以太币。可以使用以下代码向另一个账户发送以太币:
-- -------------------- ---- ------- -- --- - -- - ------- - ----- -------- - ----------- -- -- - -- ----- -------- - ----------- -- -- - -- ----- ----------- - ----------- -- -- - -- ----- -- - - ----- --------- --- --------- ------ --------------------- --------- -- ------------------------------------- ------------ -------------- -- -------------------------------------------------------- -------------------
在这里,我们从账户 1 发送 1 个以太币到账户 2。我们使用 web3.utils.toWei
将以太币转换为 Wei 单位。我们还使用 web3.eth.accounts.signTransaction
签署交易,并使用 web3.eth.sendSignedTransaction
发送交易。
调用智能合约
除了发送以太币之外,我们还可以使用 Web3.js 调用智能合约。可以使用以下代码调用一个简单的智能合约:
const contractABI = [...]; // 合约 ABI const contractAddress = '0x789...'; // 合约地址 const contract = new web3.eth.Contract(contractABI, contractAddress); // 调用合约方法 contract.methods.methodName(arg1, arg2, ...) .send({ from: account1, gas: 100000 }) .then(console.log);
在这里,我们首先创建一个新的 web3.eth.Contract
实例,使用合约 ABI 和地址。我们然后可以使用 contract.methods.methodName
调用合约方法,并使用 send
方法发送交易。我们需要指定交易发送者和 gas 限制。
结论
在本文中,我们介绍了如何在 Express.js 中使用 Web3.js 操作以太坊区块链。我们了解了如何连接到节点、创建账户、发送以太币和调用智能合约。这些技术可以用于构建基于以太坊的应用程序,例如去中心化应用程序和智能合约平台。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676675d176af2b9a20f7805d