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

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@rivalhw·
0.000 HBD
用程序来访问和操作以太坊智能合约
这两天在实际的实践中,发现不少开发方面的坑,之前看文档,觉得挺简单的,但实际自己操作动手一试,才知道有些东西不似看起来那般容易,况且,区块链相关的技术更新日新月异版本也是层出不迭,有些东西先前是这样调用,很可能下一个版本就更换成另外一种写法,就连安装有时候也会碰到一些奇奇怪怪得小问题。

前端用的是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](https://images.hive.blog/DQmcUSwx8PhSAmiheZ4NYEfVERtn5ZF8uW3SGxzCTXgZL7m/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](https://images.hive.blog/DQmfUKH1Zn4tbGqAPHhnjg4sgFNfkNCXsPqsLZv4tcNQmNT/001%20ganache-cli.png)

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

![002 test_connect.png](https://images.hive.blog/DQmbsbFiCeVNQsHrJK1bVPisjzPRXLma1SB4qVAPUvpMWw1/002%20test_connect.png)

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

![003.png](https://images.hive.blog/DQmRXZzJ7F2VYHcG1Lmfur7R64JbEQh5eXLCCiKzEHCsNRY/003.png)

显示正确

![004.png](https://images.hive.blog/DQmZzzJb8wLnua9eyPYxQHcitVc33tAy1K9t4dr31wu6TV3/004.png)

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

[infura.io ](infura.io )
>开发套件提供对以太坊和 IPFS 网络的即时、可扩展的 API 访问

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