用程序来访问和操作以太坊智能合约

in HIVE CN 中文社区4 years ago (edited)

这两天在实际的实践中,发现不少开发方面的坑,之前看文档,觉得挺简单的,但实际自己操作动手一试,才知道有些东西不似看起来那般容易,况且,区块链相关的技术更新日新月异版本也是层出不迭,有些东西先前是这样调用,很可能下一个版本就更换成另外一种写法,就连安装有时候也会碰到一些奇奇怪怪得小问题。

前端用的是web3.js,这个web3.js是什么呢?

web3.js是一个库集合,你可以使用HTTP或IPC连接本地或远程以太它节点进行交互。 web3的JavaScript库能够与以太坊区块链交互。 它可以检索用户帐户,发送交易,与智能合约交互等。

你可以这样理解,web3.js是链接传统编程语言同以太坊节点的一个桥梁,通过web3.js,你可以访问以太坊节点,包括智能合约等。

按照官方的文档,安装看起来很简单,如下,

npm install web3

实际上呢?可能之前版本可以吧,我用这个官方的提示,在windows和mac系统下尝试安装了多次都不成功,最后按照新的方法如下才安装成功,

1、首先创建一文件夹 如 eth,然后进入eth目录

2、npm init

3、npm install web3 --save

image.png

如有 node_modules 这个文件夹,就说明安装好了。

通过如上方法,可以成功将web3安装到本地环境。

当然,以上都必须安装node和npm先。

以太坊测试节点的安装

先前网上提供的是testRPC的安装,

npm install -g testPRC

原先的testRPC已经更名为ganache ,所以新的安装方式推荐如下,

npm install -g ganache-cli

启动测试节点,

ganache-cli

001 ganache-cli.png

测试节点默认提供了10个eth账户,包括私钥

002 test_connect.png

用web3.js 尝试链接本地私人节点

003.png

显示正确

004.png

之前部署到以太坊测试网络上的智能合约,本地程序现在可以直接读取和操作智能合约了。

infura.io

开发套件提供对以太坊和 IPFS 网络的即时、可扩展的 API 访问

infura.io 这个网站有提供以太坊上的测试节点,你可以去上边申请自己的公网测试节点,将自己本地的私人节点更换成公网的节点即可。

Sort:  

大伟哥,棒棒的

这个infura.io蛮不错的,谢谢大伟哥的推荐!