如何使用web3.js与以太坊主网交互?

457 阅读1分钟

只要你知道任何以太坊主网节点的URL,就可以了。

以太坊主网节点:你可以自己本地创建加入网络,也可以使用网络上已有的。

目前有4k+ 图片.png

图片.png

国内只有4个节点,这...

比如,ethereumnodes.com 网站列出了一些。包括比较有名的Infura,Alchemy等等。

图片.png

有的是完全free的,有的需要注册申请API key

现在使用web3.js,写一个简单的连接主网节点获取区块数量的脚本

先安装一下web3

npm install web3

创建js文件 conn2eth.js

var Web3 = require('web3')
var providerURL = 'https://cloudflare-eth.com/';
var web3Provider = new Web3.providers.HttpProvider(providerURL);
var instanceWeb3 = new Web3(web3Provider);
instanceWeb3.eth.getBlockNumber().then( (result) => {
        console.log("最后的区块为:",result);
} );

执行

node conn2eth.js

可以看到返回

最后的区块为: 16502969

我们再添加几个其它节点,对比看看

var Web3 = require('web3')
var providerURL1 = 'https://cloudflare-eth.com/';
var web3Provider1 = new Web3.providers.HttpProvider(providerURL1);
var instance1Web3 = new Web3(web3Provider1);
instance1Web3.eth.getBlockNumber().then( (result) => {
	console.log("https://cloudflare-eth.com/最后的区块为:",result);	
} );

var providerURL2 = 'https://eth-mainnet.public.blastapi.io';
var web3Provider2 = new Web3.providers.HttpProvider(providerURL2);
var instance2Web3 = new Web3(web3Provider2);
instance2Web3.eth.getBlockNumber().then( (result) => {
	console.log("https://eth-mainnet.public.blastapi.io最后的区块为:",result);	
} );

var providerURL3 = 'https://nodes.mewapi.io/rpc/eth';
var web3Provider3 = new Web3.providers.HttpProvider(providerURL3);
var instance3Web3 = new Web3(web3Provider3);
instance3Web3.eth.getBlockNumber().then( (result) => {
	console.log("https://nodes.mewapi.io/rpc/eth最后的区块为:",result);	
} );

输出

https://cloudflare-eth.com/最后的区块为: 16503101
https://nodes.mewapi.io/rpc/eth最后的区块为: 16503101
https://eth-mainnet.public.blastapi.io最后的区块为: 16503101