以太坊
文章平均质量分 81
落叶无声9
没有不成功的事,唯有坚持。
展开
-
Solidity开发智能合约
一个简单的智能合约在Solidity中,一个合约由一组代码(合约的函数)和数据(合约的状态)组成。合约位于以太坊区块链上的一个特殊地址。uint storedData*;* 这行代码声明了一个状态变量,变量名为storedData,类型为 uint (256bits无符号整数)。你可以认为它就像数据库里面的一个存储单元,跟管理数据库一样,可以通过调用函数查询和修改它。在以太坊中,通常只有合约的...转载 2018-04-30 20:46:01 · 437 阅读 · 0 评论 -
安装Solidity
安装Solidity基于浏览器的Solidity如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问 基于浏览器的Solidity。如果你想离线使用,你可以保存页面到本地,或者从 http://github.com/chriseth/browser-solidity 克隆一个。NPM / node.js这可能安装Solidity到本地最轻便最...转载 2018-04-30 20:50:47 · 571 阅读 · 0 评论 -
Solidity编程开发实例
Solidity 编程开发实例Voting 投票接下来的智能合约教程非常复杂,但展示了很多Solidity的特性。它实现了一个入门的投票合约。当然,电子选举的主要问题是如何赋予投票权给准确的人,并防止操纵。我们不能解决所有的问题,但至少我们会展示如何委托投票可以同时做到投票统计是自动和完全透明。思路是为每张选票创建一个合约,每个投票选项提供一个短名称。合约创建者作为会长将会给每个投...转载 2018-04-30 20:55:24 · 534 阅读 · 0 评论 -
深入理解 Solidity
深入理解 Solidity此节将帮助你深入理解Solidity,如果有遗漏,请和我们联系Gitter或者在Githhub上发pull requestLayout of a Solidity Source FileImporting other Source FilesCommentsStructure of a ContractTypesValue TypesEnumsR...转载 2018-04-30 21:00:07 · 246 阅读 · 0 评论 -
solidity通用模式访问限制
通用模式访问限制访问限制是智能合约的一种通用模式,但你不能限制任何人获取你的智能合约和交易的状态。当然,你可以通过加密来增加读取难度,但是如果你的智能合约需要读取该数据(指加密的数据),其他人也可以读取。你可以通过将合约状态设置为私有来限制其他合约来读取你的合约状态。此外,你可以限制其他人修改你的合约状态或者调用你的合约函数,这也是本章将要讨论的。函数修饰符的使用可以让这些限制...转载 2018-04-30 21:06:29 · 448 阅读 · 0 评论 -
solidity常见问题
常见问题基础问题Solidity是什么? Solidity是受Javascript启发的编程语言,可以被用来在以太坊区块链上创建智能合约。还有其它编程语言(LLL,Serpent等)也可以创建智能合约。Solidity更被开发者喜爱的主要原因是它是静态类型语言,提供许多高级特性,例如继承、函数库、用户定义的复杂类型和字节码优化。 Solidity合约能够以不同方式被编译(见下文),...转载 2018-04-30 21:07:56 · 4017 阅读 · 0 评论 -
solidity编程规范
编程规范概述本指南用于提供编写Solidity的编码规范,本指南会随着后续需求不断修改演进,可能会增加新的更合适的规范,旧的不适合的规范会被废弃。当然,很多项目可能有自己的编码规范,如果存在冲突,请参考项目的编码规范。本指南的结构及规范建议大都来自于python的pep8编码规范。本指南不是说必须完全按照指南的要求进行solidity编码,而是提供一个总体的一致性要求,这个...转载 2018-04-30 21:10:16 · 696 阅读 · 0 评论 -
solidity源文件布局
源文件的布局源文件包括任意数量的合约定义和 include指令 引入其他源文件语法和语义Solidity支持 import语句,非常类似于JavaScript(ES6),虽然Solidity不知道“缺省导出”的概念。在全局层次上,你可以用下列形式使用import语句import "filename"; 将会从”filename”导入所有的全局符号(和当前导入的符号)到当...转载 2018-04-30 21:14:22 · 272 阅读 · 0 评论 -
solidity合约结构
合约的结构Solidity的合约和面向对象语言中的类的定义相似。每个合约包括了 状态变量,函数,函数修饰符,事件,结构类型 和枚举类型。另外,合约也可以从其他合约中继承 。状态变量是在合约存贮器中永久存贮的值函数是合约中可执行单位的代码 函数修饰符可以在声明的方式中补充函数的语义事件是和EVM(以太虚拟机)日志设施的方便的接口结构是一组用户定义的变量枚举是用来创建一个...转载 2018-04-30 21:15:36 · 238 阅读 · 0 评论 -
solidity语言类型
类型Solidity是一种静态类型语言,意思是每个变量(声明和本地)在编译时刻都要定义 (或者至少要知晓,参看 后面的类型导出 )。Solidity提供几个基本类型组合成复杂类型。变量类型以下类型被叫做值类型,因为这些类型的变量总是要被赋值,作为函数参数或者在赋值中,总需要拷贝。布尔类型布尔:可能的常量值 是 真或假操作符:!(逻辑非)&&...转载 2018-04-30 21:18:35 · 574 阅读 · 0 评论 -
solidity单位和变量
单位和全局可用变量以太单位数词后面可以有一个后缀, wei, finney, szabo 或 ether 和 ether 相关量词 之间的转换,在以太币数量后若没有跟后缀,则缺省单位是“wei“, 如 2 ether == 2000 finney (这个表达式)计算结果为true。 时间单位后缀的秒,分,小时,天,周,年, 数量词的时间单位之间可以用来转换,秒...转载 2018-05-01 17:46:37 · 268 阅读 · 0 评论 -
区块链开发人员是招聘面试职业市场上最受欢迎的专家
在过去几年中,区块链技术开发者已转变为专业人员,其招聘难度在职业市场很明显的。能够找到足够的面试人员就很不错。 根据TechCrunch出版物,迄今为止,区块链专家在国际劳动力市场的需求增长速度排名第二,而每位开发人员全球大约有14个职位空缺。劳动力市场区块链开发者的需求快速增长第一次去年被发现。因此,在2017年根据Upwork(自由职业者平台)数据,比特币开发者在20强最热门的职业列表中排第一...转载 2018-05-01 17:52:18 · 280 阅读 · 0 评论 -
以太坊智能合约部署与交互
启动容器来执行geth命令root@ubu-blockchain2:~# docker run -i blockchain101/ethereum-geth:1.6.5 geth attach http://45.32.252.88:8201Welcome to the Geth JavaScript console!instance: Geth/01/v1.6.5-stable/linux...转载 2018-05-01 17:58:10 · 419 阅读 · 1 评论 -
带你玩转以太坊智能合约的”Hello World“
学习目标使用solidity语言撰写智能合约开发前的准备Ubuntu环境下Atom编辑器安装及使用安装所需工具安装nvm安装node安装npm启动testrpc建立项目目录结构新建HelloWorld合约代码说明编译部署与合约互动加入新方法1.学习目标了解智能合约简单环境搭建能够利用solidity编写Hello World合约合约部署和合约互动2.使用solidity语言撰写智能合约Ethere...转载 2018-05-02 09:47:42 · 558 阅读 · 0 评论 -
区块链培训学习资料(特别是以太坊)
一个适合区块链新手的以太坊DApp开发教程: http://xc.hubwiz.com/course/5a952991adb3847553d205d1一个用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台: http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6收集整理了一些免费区块链、以太坊技术开发相关的...原创 2018-05-02 16:22:01 · 393 阅读 · 0 评论 -
以太坊开发入门,完整入门篇
从入门到精通,干货篇。必读,如果你:是一个专业的程序员如果你想了解以太坊当前可以做到什么程度,通过什么,如何做到。预备知识:你需要知道区块链的概念及实现一个无需信任的电子货币的运作原理。可以先看看长版,如果你觉得太长,可以看看短版。但我还是建议,看那个长的视频。如果你是一名软件工程师,拥有软件开发的经验。能知道从系统、架构角度学一个东西,其实能倍增学习效果。如果有一周的空闲时间。好了,下面开始就不...转载 2018-05-02 18:23:11 · 603 阅读 · 0 评论 -
以太坊学习之开发编译部署调用智能合约
本文根据汪晓明的视频资料整理,ubuntu16.04测试正确。 1.打开geth控制台~$ geth --datadir ~/pengfan/eth --dev在另一个终端输入~$ geth --dev console 2>>file_to_log_output2.查看、设置编译器> eth.getCompilers()[]设置solc为编译器> admin.setSol...转载 2018-05-02 20:14:41 · 282 阅读 · 0 评论 -
星际文件存储IPFS是如何颠覆云存储的?
一句话概括:IPFS(The InterPlanetary File System)星际文件存储系统是一种点到点的分布式文件系统,它连接的计算设备都拥有相同的文件管理模式。从某种意义上来说这个概念跟Web的最初理念很类似,但是实际上IPFS更像是互相转发Git目标的单个Bittorrent用户群。IPFS具备成为internet子系统的素质,通过合理配置可以完备甚至替代HTTP。 技术特征:HTT...转载 2018-05-02 20:22:08 · 302 阅读 · 0 评论 -
如何在私有区块链上编写、部署以及与以太坊进行交互的智能合约
原文:How To Write, Deploy, and Interact with Ethereum Smart Contracts on a Private Blockchain 作者:jack_schultz 翻译:无阻我飞扬摘要:本文作者以极长的篇幅给出了在私有区块链上编写、部署以及与以太坊进行交互的智能合约的较为完整的代码、相关细节步骤、用户界面等。作者是希望借助他这篇文章,大家可以自行...转载 2018-05-02 20:25:44 · 654 阅读 · 1 评论 -
以太坊开发入门,完整入门篇
一个适合区块链新手的以太坊DApp开发教程: http://xc.hubwiz.com/course/5a952991adb3847553d205d1一个用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台: http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6收集整理了一些免费区块链、以太坊技术开发相关的...原创 2018-05-02 20:33:23 · 452 阅读 · 0 评论 -
truffle.js框架的配置文件
truffle.js是以太坊开发框架,本手册介绍truffle.js 配置文件的位置、windows下的命名冲突解决方案以及各种truffle配置文件选项。truffle配置文件位置truffle项目的配置文件位于项目的根目录下,名称为truffle.js。这个文件是一个Javascript脚本,可以在其中执行任意 必要的代码来创建适合你的配置。truffle.js必须导出一个表征你的项...原创 2018-05-02 20:43:32 · 2729 阅读 · 0 评论 -
区块链白皮书大全(2018分行业)
2018年各行业区块链应用白皮书的最新完整清单:游戏与虚拟现实、社交与沟通、金融、物流与供应链、交通旅游、投资、保险、信息技术、商业与零售等。游戏与虚拟现实VRT WorldThe Abyss DreamTeamSapphire CoinVirtual UniverseConcertVR ViariumVICoinEscapeCryptonsGame MoneyKin...原创 2018-05-02 20:48:25 · 8072 阅读 · 0 评论 -
区块链应用开发入门
区块链技术如今是非常火热,不仅让金融家和创投家趋之若鹜,如今已经在多个领域遍地播种。作为拥有锐利触角的创业家们,是否也想将区块链集成到你们现有的应用中去,而作为IT技术工程师的你,是否也是跃跃欲试,想基于区块链来练一下手,以免日后被新技术淘汰?不过,区块链涉及如密码学和P2P等多种技术,区块链的技术门派众多,新鲜概念层出不穷;而另一方面,区块链技术的发展在全球范围内还都尚处在早期阶段,各种技术方案...转载 2018-05-03 14:44:51 · 1694 阅读 · 0 评论 -
在区块链上开发可更新的智能合约
由于区块链不可篡改的特性,智能合约一旦部署在区块链上,其执行的逻辑就无法再更改。长期来看,这个重要的特性反而限制了智能合约的弹性和发展。接下来要介绍如何设计及部署合约才能让合约在需要时可以更新。但这里的更新意思不是修改已经部署的合约,而是部署新的合约、新的执行逻辑但同时能继续利用已经存在的资料。首先要知道的是Ethereum Virtual Machine(EVM)要知道如何执行合约的那个函数。合...翻译 2018-04-24 10:18:39 · 1022 阅读 · 0 评论 -
以太坊智能合约设计模式
设计模式是许多开发场景中的首选解决方案,本文将介绍五种经典的智能合约设计模式并给出以太坊solidity实现代码:自毁合约、工厂合约、名称注册表、映射表迭代器和提款模式。1、自毁合约合约自毁模式用于终止一个合约,这意味着将从区块链上永久删除这个合约。 一旦被销毁,就不可能调用合约的功能,也不会在账本中记录交易。 现在的问题是:“为什么我要销毁合约?”。 有很多原因,比如某些定时合约...原创 2018-05-03 18:27:22 · 231 阅读 · 0 评论 -
以太坊通证标准包括(ERC20、ERC721、ERC223、ERC621、ERC827、RFC、EIP)
最著名的两个以太坊通证标准是代币标准ERC20和数字资产标准ERC721。在本文中,除了介绍这两个流行的ERC以太坊标准,还将介绍其他一些针对特定应用场景的ERC20改进标准:ERC223、ERC621和ERC827。什么是ERC?ERC代表“Etuereum Request for Comment”,这是Ethereum版的意见征求稿 (RFC),RFC是由互联网工程任务组制定的一个...原创 2018-05-03 18:32:29 · 2937 阅读 · 0 评论 -
JavaScript实现简单区块链
用JavaScript来实现一个简单的区块链。通过实现过程,你将理解区块链是什么:区块链就是一个分布式数据库,存储结构是一个不断增长的链表,链表中包含着许多有序的记录。然而,在通常情况下,当我们谈到区块链的时候也会谈起使用区块链来解决的问题,这两者很容易混淆。像流行的比特币和以太坊这样基于区块链的项目就是这样。“区块链”这个术语通常和像交易、智能合约、加密货币这样的概念紧紧联系在一起。...原创 2018-05-06 10:12:02 · 2709 阅读 · 0 评论 -
用go语言创建区块链
本文你将用Go语言创建自己的区块链、理解哈希函数是如何保持区块链的完整性、掌握如何创造并添加新的块、实现多个节点通过竞争生成块、通过浏览器来查看整个链、了解所有其他关于区块链的基础知识。但是,文章中将不会涉及工作量证明算法(PoW)以及权益证明算法(PoS)这类的共识算法,同时为了让你更清楚得查看区块链以及块的添加,我们将网络交互的过程简化了,关于 P2P 网络比如“全网广播”这个过程等内容将...原创 2018-05-06 10:21:25 · 2140 阅读 · 1 评论 -
以太坊智能合约虚拟机(EVM)原理与实现
以太坊 EVM原理与实现以太坊底层通过EVM模块支持合约的执行与调用,调用时根据合约地址获取到代码,生成环境后载入到EVM中运行。通常智能合约的开发流程是用solidlity编写逻辑代码,再通过编译器编译元数据,最后再发布到以太坊上。代码结构.├── analysis.go //跳转目标判定├── common.go├── contract.go ...转载 2018-05-06 17:07:48 · 9390 阅读 · 1 评论 -
以太坊RPC原理及实现
以太坊-rpc原理及实现JSON-RPC是区块链外部调用的标配了。以太坊同样也实现了这个功能。底层支持四种协议:InProc,IPC,HTTP,WEBSOCKED。上层除了常规的方法调用之外还实现了Pub/Sub功能。本文主要分析以太坊是如何支持这些个功能的。api发布api接口分布在各个模块,主要分为两种1:直接code再Node中的几个service(admin,web3j,debug etc...转载 2018-05-06 17:09:44 · 2387 阅读 · 0 评论 -
以太坊微支付通道原理与实现
以太坊微支付通道原理与实现线上直接转账需要一定的费用,如果存在大量小额交易的情况下,费用会变的难以承受,因而以太坊引入了微交易支付通道来解决这个问题。以太坊提供了一个票据支付方案,主要依赖于智能合约实现的一对多的账单系统。该账单系统大致上的执行流程如下.1:账单生成,同时提供机制往账单上存入保证金。2:交易发起人生成交易票据3:直接将票据发送给接收人4:接收人兑现票据,从合约转账(尽管某次兑现可能...转载 2018-05-06 19:35:29 · 3304 阅读 · 0 评论 -
以太坊 p2p Server 原理及实现
以太坊p2p原理与实现区块链技术的去中心依赖于底层组网技术,以太坊的底层实现了p2pServer,大约可以分为这样三层。底层路由表。封装了kad路由,节点的数据结构以及计算记录,节点搜索,验证等功能。中层peer抽象,message开放发送接口,server对外提供peer检测,初始化,事件订阅,peer状态查询,启动,停止等功能以太坊最上层peer,peerset再封装,通过协议的Run函数,在...转载 2018-05-06 19:35:21 · 2602 阅读 · 0 评论 -
neo dBFT 共识算法源码解析
NEO PDFT共识算法dbft算法,通过多次网络请求确认,最终获得多数共识。缺点是网络开销大,如果网络有问题或者记账人性能不够会拖慢系统速度,如果记账人过多也会导致网络通信膨胀,难以快速达成一致。不适合在公链使用。而NEO定位是私有链或联盟链。记账人节点有限,而且机器,网络环境可以控制,因此适用于这种算法。既能避免较大的算力开销也能保证一致性。代码结构说明├── Consensus│ ├─...转载 2018-05-06 19:33:04 · 1568 阅读 · 0 评论 -
以太坊开发环境搭建windows版
本文介绍在windows下如何搭建以太坊DApp的开发环境,包括nodejs、truffle、solc、web3js、ganache等。一、安装DApp开发环境1.1 安装Node.js我们使用官方长期支持的8.10.0LTS版本,点击这个链接下载32位安装包,32位安装包即可用于32位系统,也可用于64位系统。 如果你确认你的系统是64位,也可以下载64位包装包。 下载后...原创 2018-04-28 20:41:54 · 3431 阅读 · 0 评论 -
整理了一些区块链、以太坊相关的参考技术开发文档资源供大家下载,希望对大家有用。
整理了一些区块链、以太坊技术开发相关的文件,有需要的可以下载,文件链接:1. web3.js API官方文档中文版:https://pan.baidu.com/s/1hOV9hEzi7hFxJCL4LTvC6g2. 以太坊官方文档中文版 :https://pan.baidu.com/s/1ktODJKLMBmkOsi8MPrpIJA3. 以太坊白皮书中文版 :https://p...原创 2018-03-16 15:04:37 · 1427 阅读 · 0 评论 -
infura上部署以太坊智能合约
Infura是一个托管的以太坊节点集群,可以将你开发的以太坊智能合约发布到infura提供的节点上,而无需搭建自己的以太坊节点。 可能你还不了解Infura,但如果你使用过MetaMask,那么就已经接触过Infura了,因为它是MetaMask背后的以太坊供应商。出于安全原因,Infura不管理你的私钥,这意味着Infura不能代表你签署交易。但是,Infura可以通过使用HDW...原创 2018-04-28 21:44:34 · 1853 阅读 · 1 评论 -
2018年2月DappRadar以太坊10大DApp应用
这是2018年2月以太坊DApp应用活跃度排行榜,DappRadar根据其对以太坊交易的监测而自动生成,计算的主要依据是DApp在一周内的交易量: 没准下一个明星DApp就是你开发的:)1. EtherCraft地址:https://dappradar.com/app/17/ethercraft这是一个RPG游戏,其中包含各种各样的物品,运行着超过100(!!!)个智能合...翻译 2018-04-28 22:07:17 · 1098 阅读 · 0 评论 -
IPFS环境搭建和用ipfs-api访问ipfs网络
ipfs是去中心化星际文件系统,本文介绍节点软件ipfs环境搭建和使用方法,学习ipfs-api在nodejs代码中访问ipfs网络。一、ipfs节点安装与使用1.1下载节点软件到官网下载windows版的ipfs节点软件:32位,64位 如果你不能访问官网,可以使用百度云盘镜像:32位,64位1.2解压节点软件下载后解压到指定目录,例如d:\go-ipfs,开一...原创 2018-04-29 16:09:44 · 11111 阅读 · 3 评论 -
什么是智能合约
智能合约介绍一个简单的智能合约先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节。Storagecontract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant re...转载 2018-05-07 21:05:07 · 2427 阅读 · 0 评论 -
智能合约是什么?
通过谷歌的关键词搜索趋势图可以看出,智能合约正在受到越来越多的关注,从而我们需要一个更加清晰的定义。目前,与人们对智能合约的兴奋相伴的还有对这一术语含义的困惑。Peter Todd–比特币核心(Bitcoin Core)的开发者之一–非常准确地总结了智能合约的现状:“从智能合约讨论中得到的结论:没有人理解智能合约究竟是什么,如果我们要实施智能合约,应该需要预言机(oracles)。”在本文中,我尽...转载 2018-05-07 21:10:34 · 5942 阅读 · 0 评论