![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
练习
戈森
一定要做成自己想做的事
展开
-
29 编写合约测试脚本
一、在编写合约时,我们可以利用remix部署后的页面调用合约函数,进行单元测试;还可以将合约部署到私链,用geth控制台或者node命令行进行交互测试。但这有很大的随意性,并不能形成标准化测试流程;而且手动一步步操作,比较繁琐,不易保证重复一致。于是我们想到,是否可以利用现成的前端技术栈实现合约的自动化测试呢?当然是可以的,mocha就是这样一个JavaScript测试框架。1、安装依赖开...原创 2020-04-09 22:01:23 · 515 阅读 · 0 评论 -
28 编写合约的部署脚本
完成一个自动化脚本,将合约部署到区块链网络中。一、部署的必要条件1、与以太坊节点的通信连接我们需要启动一个以太坊节点,连接到想要的网络,然后开放HTTP-RPC的API(默认8545端口)给外部调用;或者也可以用第三方提供的可用节点入口,以太坊社区有人专门为开发者提供了节点服务。目前我们直接用ganache,不需要考虑这些问题,但如果配置其它网络,这个配置就是必要的。2、余额大于 0 的账...原创 2020-04-08 21:25:25 · 455 阅读 · 0 评论 -
27 以太坊编译部署脚本
一、编译是对合约进行部署和测试的前置步骤,编译步骤的目标是把源代码转成 ABI 和 Bytecode,并且能够处理编译时抛出的错误,确保不会在包含错误的源代码上进行编译。1、目录结构2、合约源码pragma solidity ^0.4.22; contract Car { string public brand; constructor(string initialBrand)...原创 2020-04-08 16:05:14 · 351 阅读 · 0 评论 -
25 web3js笔记
一、1、web3.jsWeb3 JavaScript app APIweb3.js 是一个JavaScript API库。要使DApp在以太坊上运行,我们可以使用web3.js库提供的web3对象web3.js 通过RPC调用与本地节点通信,它可以用于任何暴露了RPC层的以太坊节点web3 包含 eth 对象 - web3.eth(专门与以太坊区块链交互)和 shh 对象 - web3...原创 2020-04-05 19:51:13 · 508 阅读 · 1 评论 -
24 深入理解solidity
一、1、solidity源文件布局pragma (版本杂注)源文件可以被版本杂注pragma所注解,表明要求的编译器版本例如:pragma solidity ^0.4.0;源文件将既不允许低于 0.4.0 版本的编译器编译, 也不允许高于(包含) 0.5.0 版本的编译器编译(第二个条件因使用 ^ 被添加)import(导入其它源文件)Solidity 所支持的导入语句import...原创 2020-04-03 21:33:01 · 2725 阅读 · 1 评论 -
23 代币&投票合约的编译与解读
一、简单代币合约(上)pragma solidity >0.4.22 <0.6.0; contract Coin { //铸币者 address public minter; //地址到代币余额的映射 mapping (address => uint) balances; event Sent(address from, address to, uint am...原创 2020-04-02 23:29:16 · 405 阅读 · 0 评论 -
22 solidity的简单合约
一、solidity(上)1、Solidity是什么Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。内含的类型除了常见编程语言中的标准类型,还包括 address 等以太...原创 2020-04-02 15:23:53 · 411 阅读 · 0 评论 -
20 以太坊交易
一、 以太坊交易(一)1、交易的本质交易是由外部拥有的账户发起的签名消息,由以太坊网络传输,并被序列化后记录在以太坊区块链上。交易是唯一可以触发状态更改或导致合约在EVM中执行的事物。以太坊是一个全局单例状态机,交易是唯一可以改变其状态的东西。合约不是自己运行的,以太坊也不会“在后台”运行。以太坊上的一切变化都始于交易。2、交易的数据结构交易是包含以下数据的序列化二进制消息:...原创 2020-03-31 14:48:36 · 631 阅读 · 0 评论 -
18 geth控制台使用
一、geth控制台操作(一)1、启动geth2、Geth控制台命令Geth Console是一个交互式的 JavaScript 执行环境,里面内置了一些用来操作以太坊的 JavaScript 对象,我们可以直接调用这些对象来获取区块链上的相关信息。这些对象主要包括:eth:主要包含对区块链进行访问和交互相关的方法;net:主要包含查看p2p网络状态的方法;admin:主要包含与管理节...原创 2020-03-31 00:19:37 · 711 阅读 · 1 评论 -
17 geth客户端了解和安装
一、以太坊客户端1、什么是以太坊客户端以太坊客户端是一个软件应用程序,它实现以太坊规范并通过p2p网络与其他以太坊客户端进行通信。如果不同的以太坊客户端符合参考规范和标准化通信协议,则可以进行相互操作。以太坊是一个开源项目,由“黄皮书”正式规范定义。除了各种以太坊改进提案之外,此正式规范还定义了以太坊客户端的标准行为。因为以太坊有明确的正式规范,以太网客户端有了许多独立开发的软件实现,它...原创 2020-03-30 15:04:58 · 431 阅读 · 0 评论 -
16 智能合约入门--水龙头合约
一、智能合约入门(一)用Remix写一个水龙头合约1、合约代码//没有“^”则表示指定版本pragma solidity ^0.4.19;//Our first contract is faucet!contract Faucet { //Give our ether to anyone who asks function withdraw(uint withdraw_...原创 2020-03-30 09:30:09 · 818 阅读 · 0 评论 -
13 简单投票DAPP,有问题待解决,谁能帮帮忙?
一、开发准备1、预先安装 nodejs 和 npm,再用npm安装 ganache-cli、web3和solc1.1 指定版本安装(1)建列表(2)列出文件(3)查看初始化文件(4)指定版本安装solc版本改为solc@0.4.25(5)为了便于测试,ganache 默认会创建 10 个账户,每个账户有 100 个以太。你需要用其中一个账户创建交易,发送、接收以太二、...原创 2020-03-17 21:51:35 · 446 阅读 · 5 评论 -
12 关于truffle的一些问题记录
1、启动geth后查看1.1 方法1geth --datadir data --rpc --port 1997 --networkid 921 console 2>> test.log1.2 方法21.3 查看2、过滤出geth执行程序,然后kill(因为之前启动的时候命令有误)3、truffle unbox webpack问题3.1 报错Error: Tru...原创 2020-03-16 00:31:53 · 275 阅读 · 0 评论 -
11 Ubuntu下nodejs、npm、truffle、vscode指定版本安装
1、truffle安装版本号记录https://www.pianshen.com/article/650021715/2、安装方法https://blog.csdn.net/mcgrady_tracy/article/details/42805985?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=dist...原创 2020-03-15 10:49:02 · 554 阅读 · 1 评论 -
10 truffle的安装及一些存在的问题
简书安装trufflehttps://www.jianshu.com/p/29834dbc8de3其中把npm config set prefix "D:\软件安装目录\NodeJs安装\node_global"改为npm config set prefix "D:\软件安装目录\NodeJs安装"菜鸟npm安装教程https://www.runoob.com/nodejs/nod...原创 2020-03-14 16:54:13 · 488 阅读 · 1 评论 -
08 linux学习笔记总结
01 Linux的发展(1)mstsc:远程登录;02 Linux的终端(1)shutdown -h now:正常关机;(2)halt:关闭内存;03 使用VMware的备份功能(1)快照:频繁备份;虚拟机—快照—拍摄快照恢复:虚拟机—快照—快照管理器(2)克隆:长期备份;先关机—右键需要克隆的虚拟机—管理—克隆04 Linux的文件目录名称描述bin...原创 2020-03-09 21:34:20 · 198 阅读 · 0 评论 -
06ubuntu中安装geth-linux-amd64-1.8.13(因为用PPA直接安装最新版会出现很多问题)
1、创建文件夹2、创建文件并编译genesis.json文件内容3、初始化创世区块4、启动geth原创 2020-03-09 00:17:15 · 743 阅读 · 0 评论 -
05win7与win10两节点搭建私有链
一、条件1、设备:win7、win102、两台电脑均需要安装geth,安装教程见04windows中搭建以太坊私有链注意:两台电脑的初始化配置文件genesis.json要相同。二、启动geth1、节点1geth --datadir "C:\eth\geth\bin\PrivateChain" --nodiscover --networkid 333 --ipcdisable --po...原创 2020-03-05 22:18:43 · 273 阅读 · 0 评论