以太坊
文章平均质量分 62
tianlongtc
这个作者很懒,什么都没留下…
展开
-
truffle教程
直接在geth的控制台通过solc进行编译部署的示例已经很多了,比如这篇博客,此处不再赘述。本文主要演示怎样通过truffle部署以太坊智能合约。truffle是一个以太坊智能合约开发框架,它会帮你做很多琐碎的事情,安装使用都很简单1、安装(安装之前你需要先安装nodejs)npm install -g truffle2、新建一个项目mkdir testcd testtruffle init ...原创 2018-04-24 18:32:14 · 1831 阅读 · 1 评论 -
以太坊可更新智能合约研究与开发综述
原文地址:https://ethfans.org/posts/ethereum-upgradeable-smart-contract-strategies这篇文章是对以太坊可更新智能合约领域里的研究和开发的综述。它意图成为一篇便利的资源帖,集中迄今为止的研究,并推进技术讨论。此外,我已经创建了一个关于不同策略的优缺点比较的简要表格,下面会放出来。如果你正在研究或者开发领域工作或者观摩,请对本文作出...转载 2018-06-19 01:11:50 · 541 阅读 · 0 评论 -
智能合约升级
原文地址: https://ethfans.org/posts/flexible-upgradability-for-smart-contracts以太坊智能合约具有很强的不变性,使得我们能够构建完全防篡改的应用程序,任何个人、公司或政府都不能篡改数据(信息)。每个参与者都遵循相同的规则,并且这些规则永远都不会改变。但是,说到底,这些规则都是由人创造的。而人类总是偶然会犯一点错误的。我们不可能从第...转载 2018-06-19 01:13:03 · 2736 阅读 · 0 评论 -
深入了解以太坊虚拟机
Solidity提供了很多高级语言的抽象概念,但是这些特性让人很难明白在运行程序的时候到底发生了什么。我阅读了Solidity的文档,但依旧存在着几个基本的问题没有弄明白。string, bytes32, byte[], bytes之间的区别是什么?该在什么地方使用哪个类型?将 string 转换成bytes时会怎么样?可以转换成byte[]吗?它们的存储成本是多少?EVM是如何存储映射( map...转载 2018-07-04 23:04:14 · 200 阅读 · 0 评论 -
V神·以太坊上的分片
译者序本文是我应以太坊中文社区(Ethfans.org)之邀做的翻译稿,原文取自以太坊社区的Github: [https://github.com/ethereum/sharding/blob/develop/docs/doc.md] 。原文最后更新于2018年1月5日。2017年8月,比特币网络进行了硬分叉,产生了比特币现金(Bitcoin Cash),这个硬分叉的技术解释就是对比特币...转载 2018-07-24 23:58:55 · 879 阅读 · 0 评论 -
【以太坊源码】以太坊黄皮书参数
由于参数比较多,直接贴出来比较杂乱,我将其整理在百度脑图,按照黄皮书章节顺序进行分类,并调整了部分常数顺序需要查阅特定的参数,可以使用ctrl+F直接查询,由于百度脑图不支持下标(或者我不知道),所有参数统一没用下标,并在备注中说明是否有下标(~~代表下标)由于不支持下标,公式统一没有贴出来,只贴出来部分参数。http://naotu.baidu.com/file/d13c371cc4...原创 2018-07-20 22:38:46 · 317 阅读 · 0 评论 -
【以太坊源码阅读】椭圆曲线加密和EIP155
1、以太坊椭圆曲线加密r,s,vhttps://crypto.stackexchange.com/questions/59506/ecdsa-recover-on-arbitrary-valueshttps://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-...原创 2018-07-21 01:19:53 · 2131 阅读 · 0 评论 -
【以太坊源码】交易(一)
交易是区块链中最基本也是最核心的一个概念,在以太坊中,交易更是重中之重,因为以太坊是一个智能合约平台,以太坊上的应用都是通过智能合约与区块链进行交互,而智能合约的执行是由交易触发的,没有交易,智能合约就是一段死的代码,可以说在以太坊中,一切都源于交易。下面就来看看在以太坊中交易是什么样的,交易里面都有什么。交易的数据结构在core/types/transaction.go中定义了交易的数据结构:t...转载 2018-07-16 00:27:01 · 1396 阅读 · 1 评论 -
【以太坊源码】I.区块和交易,合约和虚拟机
转载自:https://blog.csdn.net/teaspring/article/details/75389151最近在看以太坊(Ethereum)的源代码, 初初看出点眉目。 区块链是近年热点之一,面向大众读者介绍概念的文章无数,有兴趣的朋友可自行搜索。我会从源代码实现入手,较系统的介绍一下以太坊的系统设计和协议实现等,希望能提供有一定深度的内容,欢迎有兴趣的朋友多多讨论。注:1.源代码在...转载 2018-07-16 00:28:53 · 396 阅读 · 0 评论 -
Merkle Patricia Tree (MPT) 树详解
转载自:http://www.cnblogs.com/fengzhiwu/p/5584809.html1. 介绍 Merkle Patricia Tree(简称MPT树,实际上是一种trie前缀树)是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对。以太坊区块的头部包括一个区块头,一个交易的列表和一个uncle区块的列表。在区块头部包括了交易的h...转载 2018-07-21 14:02:33 · 597 阅读 · 0 评论 -
Merkle Patricia Tree (MPT) 以太坊merkle技术分析
转载自:https://blog.csdn.net/zslomo/article/details/53434883一 传统merkle树缺陷我的这篇博客merkle tree 分析 详细解释了merkle树的原理和作用,然而传统的merkle树有他的局限性 以下对Vitalik blog原文的翻译可以很好的阐述传统merkle树的一个特别的限制是,它们虽然可以证明包含此交易,但无法...转载 2018-07-21 14:03:44 · 459 阅读 · 0 评论 -
引介 | RLP 编码和解码
转载自:https://ethfans.org/posts/rlp-encode-and-decodeRLP编码和解码RLP(Recursive Length Prefix,递归的长度前缀)是一种编码规则,可用于编码任意嵌套的二进制数组数据。RLP编码的结果也是二进制序列。RLP主要用来序列化/反序列化数据。RLP数据定义RLP编码的定义只处理以下两类数据: 字符串(stri...转载 2018-07-21 15:37:04 · 708 阅读 · 0 评论 -
【以太坊源码】mpt实现
转载自:click heretrie/encoding.goencoding.go主要处理trie树中的三种编码格式的相互转换的工作。 三种编码格式分别为下面的三种编码格式。KEYBYTES encoding这种编码格式就是原生的key字节数组,大部分的Trie的API都是使用这边编码格式 HEX encoding 这种编码格式每一个字节包含了Key的一个半字节,尾部接上一个可选的'...转载 2018-07-22 16:50:10 · 1355 阅读 · 0 评论 -
LRU算法原理与实践
简介操作系统中进行内存管理中时采用一些页面置换算法,如LRU、LFU和FIFO等。其中LRU应用较为广泛。LRU的全称是Least Recently Used,即最近最少使用算法。大家都知道在缓存的大小是有限的,那么我们应该基于什么策略进行缓存数据呢?LRU提供的思路是将最近没有使用的数据从缓存中移除,这样的思路在实际的环境中比较符合常识。原理LRU算法的原理比较简单,数据存储的数...转载 2018-07-22 16:56:48 · 934 阅读 · 0 评论 -
Merkle Patricia Tree详解
转载自:https://ethfans.org/toya/articles/5881. 前言1.1 概述Merkle Patricia Tree(又称为Merkle Patricia Trie)是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,是以太坊中用来组织管理账户数据、生成交易集合哈希的重要数据结构。MPT树有以下几个作用:存储任意长度的key-value键值对数据;提供了一...转载 2018-05-23 13:51:39 · 9893 阅读 · 6 评论 -
rlp编码
RLP (递归长度前缀)提供了一种适用于任意二进制数据数组的编码,RLP已经成为以太坊中对对象进行序列化的主要编码方式。 RLP的唯一目标就是解决结构体的编码问题;对原子数据类型(比如,字符串,整数型,浮点型)的编码则交给更高层的协议;以太坊中要求数字必须是一个大端字节序的、没有零占位的存储的格式(也就是说,一个整数0和一个空数组是等同的)。对于在 RLP 格式中对一个字典数据的编码问题,有两种建...转载 2018-05-23 13:24:55 · 1795 阅读 · 0 评论 -
以太坊源码学习(一)
转载自:https://blog.csdn.net/karizhang/article/details/79110981背景geth源码一直在不断增加,优化,发展到现在已经非常庞大,第一次看geth源码,会有不小的难度。虽然如此,还是可以从geth仓库的第一个commit开始,这时的代码比较少,但是以太坊核心的雏形已经隐隐可见,阅读代码可以加深理解以太坊的模块组成,揣测设计的想法和思路。项目结构去...转载 2018-05-23 10:06:49 · 1045 阅读 · 0 评论 -
ERC721
ERC721目前看,ERC721 跟 ERC20 及其近亲系列有本质上的不同。ERC721 中,代币都是唯一的。ERC721 是几个月前提出来的方案,CryptoKitties,这款使用ERC721标准实现的收集虚拟猫游戏使得它备受瞩目。以太猫游戏实际就是智能合约中的非同质代币 (non-fungible token),并在游戏中用猫的形象来表现出来。如果想将一个 ERC20 合约转变成 ERC7...转载 2018-04-20 01:23:04 · 999 阅读 · 0 评论 -
利用truffle与智能合约进行交互
先了解相关指令,再观看比较合适:http://truffle.tryblockchain.org/ 安装:先完成上一条博客的安装,再来进行下面的操作:http://www.cnblogs.com/tianlongtc/p/8877579.html#第一个终端sudo apt install npm #安装npmsudo npm install npm@latest -g #升级npmsudo ...原创 2018-04-20 01:24:16 · 1011 阅读 · 0 评论 -
搭建属于自己的私有链,部署简单的智能合约
ubuntu 17.10安装 sudo apt upgrade -ysudo apt install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt updatesudo apt install ethereumsudo apt install solc -y一条一条复制黏贴,好,...原创 2018-04-20 01:25:19 · 574 阅读 · 0 评论 -
解决miner.start() 返回null
下面我列举了三种解决方案,前面两张是某两位大佬试出来的,第三种是我蒙出来的。 第一种解决方案转载自 http://mp.weixin.qq.com/s/AB9vj1EzOgWT7JyryfQhDg问题场景最近技术群中的朋友经常问到这样的问题,环境搭建已经搭建好,geth节点也成功启动,可为什么当执行miner.start()方法时却没有挖矿,返回null。其实,不仅仅这些朋友,本人在启动最新节点...原创 2018-04-21 09:51:07 · 4999 阅读 · 1 评论 -
truffle 安装以及基本指令
1. linux下安装方式$ npm install -g truffle环境要求:NodeJS 5.0+Windows,Linux,或Mac OS X 2. 创建工程: $ mkdir testdir $ cd testdir $ truffle init 分别是 创建testdir目录, 进入testdir目录, 创建一个truffle工程 $ ls 出现下面这些文件:contracts ...原创 2018-04-21 09:51:05 · 1575 阅读 · 0 评论 -
geth指令
ubuntu下载: https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntusudo apt-get install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get u...原创 2018-04-21 01:45:35 · 505 阅读 · 0 评论 -
以太坊创世区块源码分析
genesis 是创世区块的意思. 一个区块链就是从同一个创世区块开始,通过规则形成的.不同的网络有不同的创世区块, 主网络和测试网路的创世区块是不同的.这个模块根据传入的genesis的初始值和database,来设置genesis的状态,如果不存在创世区块,那么在database里面创建它。数据结构// Genesis specifies the header fields, state of...转载 2018-04-21 01:29:58 · 3575 阅读 · 0 评论 -
ERC20
什么是ERC20 token市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议。概述token代表数字资产,具有价值,但是并不是都符合特定的规范。基于ERC20的货币更容易互换,并且能够在Dapps上相同的工作。新的标准可以让token更兼容,允许其他功能,包括投票标记化。操作更像一个投票操作Token的持有人可以完全控制资产,遵守ERC20的tok...转载 2018-04-21 01:30:28 · 1645 阅读 · 0 评论 -
web3.js
安装别按照官网上面 npm install web3 下载,我已经吃过一次亏了npm initnpm install ethereum/web3.js --save 指令web3.isConnected() #检查结点的连接是否存在web3.reset() #重置web3web3.sha3(string,options) #加密web3.toHex() #将任何值转为hexweb3 = ...原创 2018-04-21 09:51:10 · 2591 阅读 · 9 评论 -
如何在私有链实现分叉
待更新比特币源码https://blog.csdn.net/g2com原创 2018-04-21 09:51:12 · 327 阅读 · 0 评论 -
智能合约开发简介
原文: https://ethfans.org/posts/introduction-smart-contract-development我最近在 Blockgeeks 上读了一篇好文章,在这篇文章里 Ameer 尝试把关于去中心化应用(DApp)编码的所有知识都放到其中。这是一件多么伟大的工作啊!当然这里边有很多要素可以讨论,我会详细阐述其中的一些工具,以及它们是如何用于智能合约开发的。这一系列...转载 2018-04-22 10:05:42 · 6368 阅读 · 0 评论 -
实战-动手开发第一个区块链投票DAPP
转载自https://www.imooc.com/article/25330前言我是一个菜鸟,所以在代码质量上可能不太好,欢迎指点。阅读本文可能需要一定的基础,有疑问欢迎留言。本篇文章,将带读者用Truffle框架在ganache环境上搭建一个属于自己的投票DAPP雏形,你可以在这基础上进行扩展。这里如果你对ganache不熟悉的可以使用testrpc环境也是一样的。开发包对应版本web3.js ...转载 2018-05-03 23:41:33 · 3186 阅读 · 0 评论 -
以太坊源码阅读资料
以太坊源码分析https://blog.csdn.net/teaspring以太坊源码阅读https://github.com/dragontc/go-ethereum-code-analysis以太坊黄皮书部分翻译https://github.com/yuange1024/ethereum_yellowpaper推荐阅读顺序 从mpt源码开始读,再读account,再读block,再读block...原创 2018-05-23 09:45:11 · 697 阅读 · 0 评论 -
以太坊PoA共识引擎算法介绍(3)
PoA私链搭建go-ethereum自带puppeth工具, 可以方便地部署支持PoA的以太坊私链,以本地部署2节点的以太坊私有链为例, 部署步骤如下:geth1.6版本后自带puppeth工具(编译geth时用 make all ) 创建两个文件夹,用来保存2个节点数据, 创建后进入到testnet文件夹 testnet |-- node1 |--...转载 2018-11-12 21:24:01 · 1018 阅读 · 0 评论