智能合约

以太坊solidity智能合约-生成随机数

爱⌒轻易说出口 提交于 2019-12-21 09:02:58
Solidity随机数生成 在以太坊的只能合约中,没有提供像其他面向对象编程一样的生成随机数的工具类或方法。其实,所谓的随机数也是伪随机的,没有哪一种语言能够真正的生成随机数。 对于solidity来说通过复杂的算法生成随机数成本太高,同时智能合约又运行在多个节点上,因此,不能使用像时钟时间来生成随机数。 solidity随机数生成过程 在此使用最常用的算法之一是“线性同余发生器”(LCG)。基本步骤如下: 接收输入 基于输入执行算法 取输出模数(除以需要范围内的最大数量)。 function rand(uint256 _length) public view returns(uint256) { uint256 random = uint256(keccak256(abi.encodePacked(block.difficulty, now))); return random%_length; } 比如上面的代码,通过一系列算法获得类型为uint256的random数据,然后对random取模指定的长度,即可得到一个随机数。其中_length的参数为你想去随机数的范围,比如要取0-10的随机数,那么_length的长度便为10。 在以上方法中第一步通过abi.encodePacked(...) returns (bytes)用来计算参数的紧密打包编码

Atom离线插件安装

大憨熊 提交于 2019-12-21 03:36:07
P7 、1-以太坊(Ethereum)是什么? DAPP:分布式应用程序 以太坊提供了便于交易的加密货币以太币(Ether),可透过智能合约解决交易上的信任问题,同时也可撰写DAPP来提供友善的信息汇总与操作界面,让以太坊成为一个目前最理想的区块链底层技术。 以太币(Ether)的实际用途 在电脑上执行的一般的代码,写出来可能会有循环不断执行(死循环)的情况,搬到区块链上亦然。那么以太坊怎么解决这个问题呢?以太坊开发者想到的办法是让执行的代码变得有价。EVM里支持的所有的指令(OPCODE)都有明码标价,执行智能合约需要消耗与执行的指令数量相当的以太币。在智能合约的术语中,这些拿来消耗的以太币被称为gas(燃料)。部署合约到区块链上时,需要附加一定数量的燃料。当燃料消耗完而程序还没执行完,就会出现 Out of Gas(燃料耗尽)错误。智能合约透过这样的方式来避免死循环等情况。 智能合约能做什么事? 创造新的加密代币 募资 程序能做的事 当你需要公开时,可被信任的纪录时,都可以透过智能合约达成。 以太坊的缺点 目前以太坊区块链的速度和电脑执行速度无法相比,不适合快速交易,或是需要存储较大数据的情境。近期的 plasma 提案有望解决快速交易的问题。 因为缺乏即时调控区块大小的手段,在一些很热门的交易时段(如某些热门的ICO开放认购时),整个网络的交易延迟会变地很长。

区块链与智能合约的关系

﹥>﹥吖頭↗ 提交于 2019-12-11 17:14:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 什么是智能合约 上面提到了历史背景,下面从多个角度继续探讨。智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。 智能合约包含了有关交易的所有信息,只有在满足要求后才会执行结果操作。智能合约和传统纸质合约的区别在于智能合约是由计算机生成的。因此,代码本身解释了参与方的相关义务。 事实上,智能合约的参与方通常是互联网上的陌生人,受制于有约束力的数字化协议。本质上,智能合约是一个数字合约,除非满足要求,否则不会产生结果。 谈到区块链、以太坊,必定离不开‘智能合约“这个词。这个概念在95年首次提出。 智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。 二、智能合约的工作原理 智能合约包括三个步骤: 第一步是 智能合约的构建, 智能合约怎么构建的?智能合约由区块链的多个用户共同参与制定一份智能合约。 第二部分是 智能合约的存储, 智能合约通过P2P网络扩散到每个节点,并存入区块链。 第三部分是 智能合约的执行, 智能合约定期进行自动机状态检查,将满足条件的事物进行验证

[转帖]智能合约和 DApp

懵懂的女人 提交于 2019-12-07 18:13:30
智能合约和 DApp https://www.jianshu.com/p/5e7df3902957 2018.10.08 19:50:41字数 3,403阅读 9,819 2017年11月份和2018年5月份的技术雷达,都将 Ethereum for decentralised applications . 放到了 Technique 象限的 ASSESS 环里,鼓励在数字货币和银行等金融领域之外多尝试构建崭新的DApp。那我们就来聊聊什么是去中心化应用。 技术雷达 Ethereum for DApps Ethereum(以太坊)是众多区块链平台里除了比特币之外最为有名的区块链平台了。它标榜成为世界的计算机,然后在这台世界计算机上运行的就是智能合约,智能合约相当于后台程序,和前端程序一组合(sdk/rpc)也就是这里的 DApp 。 智能合约和 DApp 大侠留步,智能合约(Smart Contract)是个什么东西,和AI有关系?嗯,没半毛钱关系。 刺客伍六七 举个例子,我们来听首歌:“阿珍爱上了阿强,在一个有星星的夜晚,飞机从头顶飞过,流星也划破那夜空”。这是一首描写爱情的美妙歌曲,因为太美妙了,所以很多人在传唱,结果很多人都知道了一个事实:阿珍爱上了阿强。这就是多人形成的一种共识,传播方式类似于流行感冒,所以也叫流行歌曲(大概是这么回事儿)。 智能合约和这个原理差不多

解读央行《区块链能做什么、不能做什么?》

血红的双手。 提交于 2019-12-06 15:54:23
解读央行《区块链能做什么、不能做什么?》 https://www.cnblogs.com/Evsward/p/9929102.html 近日,央行发布了长文《区块链能做什么、不能做什么?》,我想从一个程序员的角度来谈谈这篇文章。 观感 先说观感,这篇文章可以说真的是非常鞭辟入里了。笔触客观,分析得道。 token Token本质上是区块链内定义的状态变量,转账过程保证双方状态同时更新,token总量不变,不会形成传统意义上的结算在途资金或结算风险。 目前大部分智能合约都是针对token的复杂操作。例如定义、发行、销毁、投票、转让、奖励、抵押、冻结和解冻实则都是转账操作。 区块链的信息分为与token有关系和没关系两部分,有关系的是要被检验,共识。而没关系的只是单纯记录,只意味着信息不可篡改,没有提升信息的真实准确性。 比如,比特币节点会检验随机数(nonce)是“挖矿”问题的解,以及区块中的交易在数据结构、语法规范性、输入输出和数字签名等方面符合预先定义的标准。但对比特币创世区块中的“TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks”,节点不会也没有能力验证这句话的真实准确性。 比如,比特币共识决定了截至某一区块,各地址对应的UTXO数量以及地址之间转让比特币的记录

hyperledger fabric 智能合约开发

北慕城南 提交于 2019-12-06 15:54:19
智能合约部分 太困了,休假的时候再把图贴上 ..... 运行在 docker容器里面,如果需要调试只能通过打日志log方式 一个合约,就是一个用户用 go/java/ node编写的文件(包括:字符,方法,返回信息) 块中 ( chaincode目录下),一个合约只能对应一个目录 下面目录有用 go/java/node语言开发智能合约的代码 下面网址可以查看 channel跟存入的数据等(一个合约跟一个channel会生成一个库) 一个 channel下可以安装多个合约,每个合约都会生成一个数据库 安装合约 命令行代码 解释: -n : 合约名称 -v:合约版本 -p:合约所在目录 说明: 合约所在目录从 github.com开始,因为前面会自动从根目录(opt)目录层拼上路径 安装后,状态查看 --------------------------------------------------------------------------------------------------------------------------- 实例化合约 实例化操作是会存到区块链上的,需要指定是在哪个 channel里面上传区块。 指令: 说明: -n、-v跟上面指令相同 -o:指定order的节点 // 上块操作都必须只能 order节点 --tls --cafile:指定tls证书

守财鱼系统开发app

一个人想着一个人 提交于 2019-12-06 14:18:50
守财鱼系统开发 找 ‘’潘经理137 微 2777 电 3584 ‘’守财鱼系统开发,守财鱼系统定制开发,守财鱼系统源码出售,守财鱼系统包搭建,守财鱼系统支持二次开发 非运营平台,玩家勿扰 非运营平台,玩家勿扰 非运营平台,玩家勿扰 非运营平台,玩家勿扰 守财鱼系统介绍; 1 虎皮鱼 200-350 所需饲料 1/2 智能合约收益以平台为准 2 红剑鱼 351-500 所需饲料 4/8 智能合约收益以平台为准 3 神仙鱼 501-750 所需饲料 5/10 智能合约收益以平台为准 4 狐狸鱼 751-1000 所需饲料 5/10 智能合约收益以平台为准 5 蓝彩鱼 1001-1500 所需饲料 10/20 智能合约收益以平台为准 6 六间鱼 1501-2000 所需饲料 10/20 智能合约收益以平台为准 7 孔雀鱼 2001-3000 所需饲料 15/30 智能合约收益以平台为准 8 红宝石鱼 3001-8000 所需饲料 25/50 智能合约收益以平台为准 9 金龙鱼 8001-18000 所需饲料 50/100 智能合约收益以平台为准 推荐 直推第一层 %3 直推第二层 %5 直推第三层 % 8 团队 直推 3 人成金户团队奖 %1 账户为准 直推 9 人成砖石团队奖 %2 账户为准 直推 20 人成至尊团队奖 %3 账户为准 饲料获得方式, 向推荐人购买 ( 线下付款

区块链安全:实现公链双花攻击的多种方法

走远了吗. 提交于 2019-12-06 09:19:33
针对 EOS、NEO 等大公链平台的多个双花攻击漏洞的案例,360 区块链实验室总结出了多种造成数字货币双花攻击的多种原因,并提出了一种通用的安全减缓措施。各种大公链项目实际上都产生过能够产生双花攻击之类的严重安全问题,盗取加密货币对黑客来讲不是难事。 而在几个月的区块链安全研究中,360 区块链实验室收到了来自各个项目方价值超过 30 万美金的数字货币漏洞报告奖励。 2008 年,中本聪提出了一种完全通过点对点技术实现的电子现金系统(比特币)。该方案的核心价值在于其提出了基于工作量证明的解决方案,使现金系统在点对点环境下运行,并能够防止双花攻击。如今比特币已经诞生十年,无数种数字货币相应诞生,但人们对双花攻击的讨论似乎仍然停留在比特币 51% 攻击上。实际上,我们的研究发现,实用的数字货币双花攻击还有很多种其他形式。在本文中,我们通过介绍我们发现的针对 EOS、NEO 等大公链平台的多个双花攻击漏洞,总结出多种造成数字货币双花攻击的多种原因,并提出一种高效的减缓措施。 1 工作量证明和双花攻击 2008 年,中本聪提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付的话,那么这种系统也就失去了存在的价值。比特币的工作量证明机制

区块链开源实现hyperledger fabric架构详解

白昼怎懂夜的黑 提交于 2019-12-06 08:44:11
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。 1、区块链解决方案的特性 1.1 分布式帐本 区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据,详见下节)在任意一台节点(不包括客户端)上都有。所以,其优点是数据很难造假,造假后也可以通过追溯记录来追究法律责任。而缺点就是极大的浪费,传统服务每份数据都尽量少存几份,即使存了三份拷贝都已经考虑到诸多异常,并使服务可用性达到N个9了。而区块链这种特性,同时造成的另一个问题是帐本不能太大,至少不能超过区块链网络中最小结点的存储以及处理能力。所以,这制约了总交易数据(下文为方便概念介绍,统称为帐本ledger)的条数,进而也影响了能写入区块链的单条交易数据的大小。 图1 区块链分布式帐本示意图 什么是区块链呢?我很喜欢《区块链技术进阶与实战》一书中对它的定义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构。如果觉得有点抽象,那么我们再来看看下面的图2。 图2-区块链数据结构示意 图2中就是账本

101个以太坊开发面试题及答案

北城余情 提交于 2019-12-06 08:24:42
超过100道以太坊区块链开发技术岗位的面试题,附参考答案。面试题目涵盖以太坊的基本概念、Geth客户端使用、 智能合约 基本概念、Solidity开发语言、去中心化 应用DApp、web3.js开发库等方面。 以太坊 问:以太坊的有价通证叫什么? 答:以太(ETH:Ether) 问:Wei和以太有什么区别? 答:Wei是一个面额,像美分到美元或便士到磅。 1 ETH =10^18 Wei 问:以太坊的平均出块时间是多少? 答:大约14秒 问:以太坊的平均块大小是多少? 答:大约2KB,实际值取决于具体情况。 问:以太坊是否支持脚本? 如果是这样,支持什么类型的脚本? 答:是的。 它支持智能合约 问:你如何得到以太? 答:有几种方法: 1.成为一名矿工 2.用其他货币换取 3.使用以太Faucet,例如 https://faucet.metamask.io 4.接受别人的赠送 问:以太从哪里来的? 答:在2014年预售中首次创建了6000万个。另外,在挖出新块时也会生成以太。 问:什么是节点? 答:一个节点本质上是一台连接到网络的计算机,它负责处理交易。 问:你熟悉多少种以太坊网络? 答:有三种类型的网络 - 实时网络(主),测试网络(如Ropsten和Rinkeby)和私有网络。 问:与以太坊网络交互的方式有哪些? 答:可以使用电子钱包或DApp 问:你可以“隐藏”一个以太坊交易吗