一、第一个web3程序
-
创建一个目录
- 执行
npm init -y
生成初始的json文件
- 执行
-
下载web3组件到当前项目目录
- 执行
npm install web3 --save
- (如果后续需要做网页需要执行
npm install express -save
)
- 执行
-
建立一个app.js文件
- 在该文件里写响应的功能js代码
var Web3 = require('web3'); var express = require('express'); var app = express(); var fs = require("fs") var server = require("http").createServer(app); var net = require('net') var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) app.get("/",function(req,res){ web3.eth.getAccounts(function(error, result){ if(!error) res.send(JSON.stringify(result)); else res.send(JSON.stringify(error)) }); }) server.listen(8080)
-
开启testrpc
- testrpc可以通过全局进行下载
npm install -g ethereumjs-testrpc
- 然后8545端口被选为testrpc的端口
- testrpc可以通过全局进行下载
-
然后访问server.listen的指定端口访问testrpc生成的是个账户地址
["0x61Bb9352bDA6db60d71D611c10ba2759815aF62F","0xf220a8728cc3438b41193CEcb9007C9d3F06861c","0xc9423CcCFC55cb96f0390197B2D48620c4637814","0xE251AC2F80Bc7446a1685E7092BED77711a4F0cd","0xf149fc6aBe51126aB10e446dBfbBC1EEfCe48FC5","0xfB2B942BA3B426b613AE45E193E70A82aa080A90","0x7102A7626687d90C65C53D9ecC708336C41a5c8D","0x097e2B7Decc868E7bfe91ECb4C2992cd28321e92","0xe8b67aedfAE6006f41CaE4F97Dd4F111B26e03FA","0xea531962B30B247295D43ef27dCb3B13f6fc8dD2"]
由此一个简单的web3的项目基础搭建步骤和测试完成
二、与Solidity交互
-
首先创建一个空目录
-
在该目录下新建一个sol文件
Factorial.sol
touch Factorial.sol
vi Factorial.sol
- 然后复制以下代码
pragma solidity ^0.7.0; contract Factorial { /* 计算n的阶乘 */ function factorial(uint n) public returns (uint) { if (n == 0 || n == 1) return 1; else return n * factorial(n - 1); } }
-
在安装了solcjs的情况下,进行以下操作
solcjs --abi Factorial.sol
- 生成一个abi文件
-
然后在该目录下打开testrpc
-
在该路径下安装web3
npm install web3
-
执行node命令
证明环境建立成功