Web3 链接本地 Rinkeby 节点

其实使用 Web3 链接本地节点与使用 Rinkeby 节点没有什么区别, 只不过多了 ipc 的链接方式的支持.

快速开始示例

使用 http 方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const Web3 = require('web3');

//const wsProvider = new Web3.providers.HttpProvider("https://rinkeby.infura.io/${InfuraPrivateKey}");
const wsProvider = new Web3.providers.HttpProvider("http://www.xxx.com:1221");
const web3 = new Web3(wsProvider);

(async () => {
const accounts = await web3.eth.getAccounts();
console.log("Accounts %j", accounts);
})();

web3.eth.getBlockNumber().then(blockNumber => {
console.log("Block Number %s", blockNumber);
});

使用 ws 方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const Web3 = require('web3');

//const wsProvider = new Web3.providers.WebsocketProvider("wss://rinkeby.infura.io/ws");
const wsProvider = new Web3.providers.WebsocketProvider("ws://www.xxx.com:1222", {
headers: {Origin: "http://www.xxx.com"}
});
const web3 = new Web3(wsProvider);

(async () => {
const accounts = await web3.eth.getAccounts();
console.log("Accounts %j", accounts);
})();

web3.eth.getBlockNumber().then(blockNumber => {
console.log("Block Number %s", blockNumber);
});

使用 ipc 方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const Net = require('net');
const Web3 = require('web3');

const wsProvider = new Web3.providers.IpcProvider("/Users/xxx/rinkeby/data/geth.ipc", Net);
const web3 = new Web3(wsProvider);

(async () => {
const accounts = await web3.eth.getAccounts();
console.log("Accounts %j", accounts);
})();

web3.eth.getBlockNumber().then(blockNumber => {
console.log("Block Number %s", blockNumber);
});

FAQ 快速问答

  1. 私有节点如何搭建

我使用的 Rinkeby 节点为根据文章 Rinkeby 私有节点指南 搭建的本地 Rinkeby.

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.