以太坊开发框架Truffle学习笔记】的更多相关文章

from http://truffleframework.com/docs/getting_started/project 1. 安装node.js 8.11.2 LTS 2. 安装Truffle $ npm install -g truffle 3. 创建项目 您可以创建项目模板,但对于新手,更好的选择是使用Truffle Boxes—示例应用程序和项目模板.我们将使用MetaCoin box, 该例子创建可在帐户之间转移的token: $ mkdir MetaCoin $ cd MetaCo…
https://www.jianshu.com/p/f7a4de0cba9d 一.安装DApp开发环境 1.1 安装Node.js 我们使用官方长期支持的8.10.0LTS版本,下载64位包装包. 下载后直接安装即可.安装完毕,打开一个控制台窗口,可以使用node了: C:\Users\Administrator> node -v v8.10.0 1.2 安装节点仿真器 为了快速开发和测试以太坊DApp,我们通常使用以太坊节点仿真器来模拟区块链,最流行的节点仿真器就是Ganache,之前被称为T…
RLP (递归长度前缀)提供了一种适用于任意二进制数据数组的编码,RLP已经成为以太坊中对对象进行序列化的主要编码方式.RLP的唯一目标就是解决结构体的编码问题:对原子数据类型(比如,字符串,整数型,浮点型)的编码则交给更高层的协议:以太坊中要求数字必须是一个大端字节序的.没有零占位的存储的格式(也就是说,一个整数0和一个空数组是等同的). 如果想学习go语言中的反射用法,这个包里面倒是有比较完善的学习示例,感兴趣的可以看看. 下面是我写的一个使用示例,演示如何使用rlp这个包. /* rlp包…
以太坊的crypto模块 该模块分为两个部分一个是实现sha3,一个是实现secp256k1(这也是比特币中使用的签名算法). 需要说明的是secp256k1有两种实现方式,一种是依赖libsecp256k1,需要cgo,另外一种是依赖github.com/btcsuite/btcd,这是一个使用go语言实现的比特币的客户端. sha3模块 这个模块实际上可以认为就是一个功能计算sha3-256,用法也很简单,就是调用crypto中的Keccak256,输出是一个32字节的hash结果 hash…
p2p模块 p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输. Server使用discover模块,在指定的UDP端口管理网络中结点的发现以及维护,discover模块能够直接和临近结点交换各自已知结点信息,从而不断的更新结点网络. Server还是用nat模块来进行TCP端口映射,而nat主要是利用upnp和pmp两个协议,如果没有,那就只能认为指定的ip就是公网ip了. Server要同时在udp和tcp的3030…
以太坊的crypto模块 该模块分为两个部分一个是实现sha3,一个是实现secp256k1(这也是比特币中使用的签名算法). 需要说明的是secp256k1有两种实现方式,一种是依赖libsecp256k1,需要cgo,另外一种是依赖github.com/btcsuite/btcd,这是一个使用go语言实现的比特币的客户端. sha3模块 这个模块实际上可以认为就是一个功能计算sha3-256,用法也很简单,就是调用crypto中的Keccak256,输出是一个32字节的hash结果 hash…
学习文档链接:here 一.虚拟机外 主要功能: 执行前将Transaction类型转化成Message,创建虚拟机(EVM)对象,计算一些Gas消耗,以及执行交易完毕后创建收据(Receipt)对象并返回 1 1.1 入口 和 返回值 文件:/core/state_processor.go --- Process() for i, tx := range block.Transactions() { statedb.Prepare(tx.Hash(), block.Hash(), i) rec…
p2p的nat模块 该模块相对比较简单,因为nat的真正实现并不在此模块,主要是使用了第三方的nat-upnp和nat-pmp来实现真正的穿透(端口映射). 对外公布的接口 ```go // An implementation of nat.Interface can map local ports to ports // accessible from the Internet. type Interface interface { // These methods manage a mapp…
很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源. 一. 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了技术架构和体系,称之为区块链技术.从比特币提取的区块链技术称之为区块链1.0时代,那个时候的应用主要以电子货币和去中心化交易为主,比如各种山寨币.而以太坊将区块链带入了2.0的时代,区块链2.0不是推翻了1.0,而是在1.0的基础上实现了区块知晓.价值知晓.图灵完备,并进行了细节优化,从而形成了以…
智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethereum) – 智能合约开发概述 支持智能合约的区块链 虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台. 超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目.通过创建分布式账本的公开标准,实…