title: Solidity陷阱:以太坊的随机数生成 Solidity是一种相当新的语言,因为没有代码是完美的,它包含与代码相关的问题以及你希望用它完成的任务.本文将指导你使用随机数作为以太坊智能合约的输入时的最佳实践和陷阱. Solidity随机数生成 Solidity无法创建随机数.实际上,每个创建随机数的算法都是伪随机的——没有语言能够创建完全随机的数字.Solidity的问题在于复杂的算法成本太高,因此使用了更基本的解决方案.除此之外,Solidity代码应该是确定性的,因为它将在多个…
  Remix 是一個开源的 Solidity 智能合约开发环境,提供基本的编译.部署至本地或测试网络.执行合约等功能.Solidity 是 以太坊Ethereum 官方设计和支持的开发语言,专门用于编写智能合约. 本文希望将一个很简单的代币合约(只能发行和转账),部署在本地和测试网络上,测试下它的功能. 详细描述使用 Remix 的步骤及使用上可能碰到的问题. 之前开发过以太坊Ethereum智能合约,但没有记录过开发的过程和碰到的问题,觉得挺可惜.这次重新开始,从最基础开始,一步步学习. 开…
今天我们来一步一步从搭建以太坊智能合约开发环境. Ubuntu16.04 安装ubuntu16.04.下载链接 //先update一下(或者换国内源再update) sudo apt-get update g++ 安装 sudo apt-get install g++ libssl-dev 安装 sudo apt-get install libssl-dev  git 之后的安装需要依赖Git sudo add-apt-repository ppa:git-core/ppa sudo apt-g…
Solidity随机数生成 在以太坊的只能合约中,没有提供像其他面向对象编程一样的生成随机数的工具类或方法.其实,所谓的随机数也是伪随机的,没有哪一种语言能够真正的生成随机数. 对于solidity来说通过复杂的算法生成随机数成本太高,同时智能合约又运行在多个节点上,因此,不能使用像时钟时间来生成随机数. solidity随机数生成过程 在此使用最常用的算法之一是"线性同余发生器"(LCG).基本步骤如下: 接收输入 基于输入执行算法 取输出模数(除以需要范围内的最大数量). func…
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合约条款的计算机交易协议".区块链上的所有用户都可以看到基于区块链的智能合约. 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播.验证或执行合同的计算机协议.智能合约允许在没有第三方的情况下进行可信交易.这些交易可追踪且不可逆转.智能合约概念于1994年由Nick S…
目录 目录 1.数组 1.1.对数组的增删改查操作. 2.String.Bytes.Mapping的使用 3.Enums 和 Structs 的简单应用 4.Ether 单位和 Time 单位 5.Address 6.更多数据类型介绍 7.相关文章 目录 Solidity 是一种静态语言类型,在编译前都要指定每个变量的类型.Solidity 提供了几种基本类型,通过几种基本类型的组合,可以组合成复杂类型. 网络上有很多翻译后的关于 Solidity 类型介绍的文章,这里就不多介绍,只是着重介绍后…
智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试环境. 智能合约就是运行在以太坊上的程序.客户端可以通过Web3.js API调用智能合约,而智能合约本身又可以直接访问以太坊网络,也就是说,智能合约前面连接着客户端,后面连接着以太坊网络,起到了承前启后的作用,而且通过智能合约,可以让整个以太坊网络更灵活,可控性更强.其实智能合约的作用相当于微软O…
在自主学习Solidity智能合约的过程中,第一份入手资料无疑是官方文档.感谢前辈们还能提供出文档的中文翻译,作为我入门的第一手资料:文末附上有用的学习链接{持续更新中} 阅读完基础文档同时上手合约后,没有人带路的感觉有点迷茫.有幸找到了以太坊的区块链浏览器:https://etherscan.io/ 展示一下首页: 浏览器右上角有搜索框,可以查看地址.交易hash.区块.Token代币等信息.近期有某些事件会通过交易的方式在附言中加入自己需要永久保存的消息,作为向世界发声的一个工具,防止删帖,…
以太坊智能合约介绍,Solidity介绍 一个简单的智能合约 先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. Storage contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint retVal) { return storedData; } } 在Solidity中,一个…
http://truffle.tryblockchain.org/ Truffle框架 Truffle是什么? Truffle是针对基于以太坊的Solidity语言的一套开发框架. 本身基于JavaScript. 学习Truffle前要知道什么? 其基于JavaScript,但对于JavaScript的要求较低,知道基本语法,模块,Promise的概念差不多就可以. 知道Solidity,因为本身就是针对它的一个框架.不然学这个干什么. 知道一点以太坊的基础,不过学Solidity那点就够了.…