开发以太坊区块链应用程序,涉及到以下部分:
智能合约开发 – 使用solidity语言编写代码,部署到区块链。
网站或客户端开发 – 与区块链中的智能合约进行交互,读写数据。
在进行网站或客户端开发时,就需要用到web3.js。web3.js库是一个javascript库,可以让你执行很多与区块链进行交互的任务,例如:
以太币转账
读写智能合约中的数据
创建智能合约
https://blog.csdn.net/chinus_yan/article/details/127539873
https://blog.51cto.com/u_14398214/5065344
https://blog.51cto.com/u_14398214/5065344
https://www.npmjs.com/package/web3
https://docs.infura.io/getting-started?_ga=2.140417713.327637145.1694770321-939484350.1694770321
npm install web3
web3.js是一个库集合,允许您使用HTTP、IPC或WebSocket与本地或远程以太坊节点交互。
Web3.js是一个JavaScript API库。要使DApp在以太坊上运行,我们可以使用web3.js库提供的web3对象
Web3.js通过RPC调用与本地节点通信,它可以用于任何暴露了RPC层的以太坊节点
web3包含了eth对象-web3.eth(专门与以太坊区块链交互)和shh对象-web3.shh(用于与Whisper交互,Whisper是以太坊生态一部分,用于消息传递)
连接以太坊节点
要访问以太坊网络,需要连接到Ethereum节点。
有几种方法可以做到这一点,可以使用Geth或Parity运行自己的Ethereum节点。但这需要从区块链下载大量数据并保持同步,很麻烦。
比较方便的方法是,使用Infura访问Ethereum节点。Infura是一个免费提供Ethereum节点的服务。
在Infura上注册账号https://app.infura.io/,创建项目,在项目详情页上可以查看API KEY:使用API KEY,就可以访问以太坊网络节点。
const { Web3 } = require("web3");
const web3 = new Web3(
new Web3.providers.HttpProvider(
"https://mainnet.infura.io/v3/1e61012658114abe821130e25a4a8429",
),
);
const balanceOfABI = [
{
constant: true,
inputs: [
{
name: "_owner",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
name: "balance",
type: "uint256",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
];
// DAI token contract
const tokenContract = "0x6B175474E89094C44Da98b954EedeAC495271d0F";
// A DAI token holder
const tokenHolder = "0x075e72a5eDf65F0A5f44699c7654C1a76941Ddc8";
const contract = new web3.eth.Contract(balanceOfABI, tokenContract);
async function getTokenBalance() {
const result = await contract.methods.balanceOf(tokenHolder).call();
const formattedResult = web3.utils.fromWei(result, "ether");
console.log(formattedResult);
}
getTokenBalance();
npm init -f //此处的-f会自动给你配好配置文件
npm install web3@^4.1.1
node app.js
https://www.python100.com/html/48120.html
15 天入门 Web3:请收好这份从 0 到 1 学习指南
https://web3caff.com/zh/archives/25607