0
点赞
收藏
分享

微信扫一扫

[区块链笔记3] cryptozombies truffle相关知识

这篇笔记主要记录菜鸡在看cryptozombies的truffle测试和部署两个模块的一些新东西
主要有一下几个
testrpc、web3.js、truffle、solc、truffle init报错、Ganache、mocha、Chai 、async、await、let和var、Loom、Infura、Rinkeby

testrpc不同于geth,geth是真正的以太坊环境,testrpc是在本地使用内存模拟的一个以太坊环境。testrpc会默认给你十个测试账号用来调试

web3.js是基于以太坊的Javascript API
web3.js的API文档https://web3.tryblockchain.org/

在搜这些名词的过程中找到一个中文学习的链接,在这里插一下
区块链相关教程
​​​ https://www.qikegu.com/docs/5124​​

truffle是本地的用来编译、部署智能合约的工具

​truffle init​​ 创建一个空工程

​truffle compile​​​ 编译
​​​truffle migrate​​​部署
​​​truffle test​​ 测试

init后会创建几个文件
contracts用于存放合约
migrations用于存放部署脚本
test用于存放测试文件
truffle-foncig.js是配置文件

truffle init报错解决方案
解决方法可以是直接git代码取代truffle init命令
git clone https://github.com/truffle-box/bare-box
后续的命令需要先执行:cd bare-box

以上两条命令的功能就相当于truffle init,自动生成好了框架。

solc是solidity的编译工具,在truffle开发框架中使用到solc

Ganache,这是一种用于以太坊开发的个人区块链,可用于部署合同,开发应用程序和运行测试。

truffle测试相关
每次开始编写新的测试套件时,需要做的第一件事是加载要与之交互的合同的构建工件。
这样,Truffle就会知道如何以合约可以理解的方式来格式化我们的函数调用。
一个简单的例子。
假设有一个合同叫做myAwesomeContract。我们可以执行以下操作来加载构建工件:
const myAwesomeContract = artifacts.require(“myAwesomeContract”);
该函数返回称为合同抽象的东西。
简而言之,合同抽象隐藏了与以太坊进行交互的复杂性,并为我们的Solidity智能合同提供了便捷的JavaScript接口.

mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行。
使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运行所有的测试,并给出测试结果。

Chai 是一个针对 Node.js 和浏览器的行为驱动测试和测试驱动测试的断言库

async(async function)声明一个function是异步的
await(async wait)用于等待一个异步方法执行完成

async函数执行后返回一个promise
promise有三个状态,pending(进行中)、resolved(已完成)、rejected(已拒绝)

letvar都可以定义一个变量
使用let声明一个变量,该变量的范围限于声明它的块中

Loom是用于创建出侧链的工具,它本身并不是侧链

Infura就是一个可以让你的dApp快速接入以太坊的平台,不需要本地运行以太坊节点。
Infura不管理私钥,这意味着它无法代表我们签署交易

由于部署智能合约需要Truffle签署交易,因此我们需要一个名为的工具truffle-hdwallet-provider。它的唯一目的是处理事务签名

Rinkeby是以太坊测试网络
用于测试的eth可以从Rinkeby的Authenticated Faucet服务里获取


举报

相关推荐

0 条评论