智能合约
文章平均质量分 64
tianlongtc
这个作者很懒,什么都没留下…
展开
-
类似以太猫的智能合约
//erc721.solcontract ERC721 { event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);...原创 2018-05-09 22:39:07 · 441 阅读 · 0 评论 -
智能合约调试指南
不像你在其他地方看到的纸质合约,以太坊的智能合约是代码组成的,需要你以非常谨慎的态度去对待它。(这是一件好事,想象下如果现实世界的合同需要编译的话会更清晰么?)如果我们的合同没有被正确的编码出来, 我们的交易可能会失败,导致以太币的损失(以 gas 的形式),更不用说浪费时间和精力。幸运的是,Truffle (版本 4 以上) 内置了逐步调试的功能,所以一旦发生错误,你可以很快发现并修复它。在本教...转载 2018-06-08 23:31:23 · 3123 阅读 · 0 评论 -
区块链安全 - DAO攻击事件解析
作者:隐形人真忙作者博客:http://blog.csdn.net/u011721501/article/details/794501220x00 前言最近关注了一下区块链方面的安全,因此翻出来之前的DAO攻击事件研究了一番,形成此文。之后可能还会发一些其他的安全分析文章。0x00 基础知识1.跨合约调用智能合约之间的调用本质上是外部调用,可以使用message call或者创建智能合约对象的形式...转载 2018-06-09 15:06:39 · 604 阅读 · 0 评论 -
使用Oraclize让智能合约调用外部数据
简介Oraclize对于以太坊来说,是一份智能合约,继承它之后,自定义的合约可以通过api访问外部的数据。但需要给一定的费用。 Orcalize的数据源有: URL (合约外部的API接口) WolframAlpha (新一代的搜索引擎,能根据问题直接给出答案,如London的天气) IPFS (星际文件系统,一个分布式的存储系统) random (随机数引擎,能产生...转载 2018-06-17 13:12:53 · 3935 阅读 · 0 评论 -
Using APIs in Your Ethereum Smart Contract with Oraclize
原文地址:https://medium.com/coinmonks/using-apis-in-your-ethereum-smart-contract-with-oraclize-95656434292eGetting data from an outside source onto the blockchain is a non-trivial problem, and one solut...转载 2018-06-17 14:26:41 · 1337 阅读 · 0 评论 -
oraclize预言机资料
智能合约如何可信的与外部世界交互: https://blog.csdn.net/sportshark/article/details/77477842国外一篇讲得很详细的文章: https://medium.com/@msolomon44/using-apis-in-your-ethereum-smart-contract-with-oraclize-95656434292e...原创 2018-06-17 14:13:47 · 1376 阅读 · 1 评论 -
以太坊可更新智能合约研究与开发综述
原文地址:https://ethfans.org/posts/ethereum-upgradeable-smart-contract-strategies这篇文章是对以太坊可更新智能合约领域里的研究和开发的综述。它意图成为一篇便利的资源帖,集中迄今为止的研究,并推进技术讨论。此外,我已经创建了一个关于不同策略的优缺点比较的简要表格,下面会放出来。如果你正在研究或者开发领域工作或者观摩,请对本文作出...转载 2018-06-19 01:11:50 · 568 阅读 · 0 评论 -
智能合约升级
原文地址: https://ethfans.org/posts/flexible-upgradability-for-smart-contracts以太坊智能合约具有很强的不变性,使得我们能够构建完全防篡改的应用程序,任何个人、公司或政府都不能篡改数据(信息)。每个参与者都遵循相同的规则,并且这些规则永远都不会改变。但是,说到底,这些规则都是由人创造的。而人类总是偶然会犯一点错误的。我们不可能从第...转载 2018-06-19 01:13:03 · 2771 阅读 · 0 评论 -
Solidity API
这是Solidity教程系列文章第8篇介绍Solidity API,它们主要表现为内置的特殊的变量及函数,存在于全局命名空间里。Solidity 系列完整的文章列表请查看分类-Solidity。 写在前面Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解,建议你先看以太坊是什么欢迎订阅区块链技术专栏阅读更全面的分析文章。...转载 2018-05-27 10:28:14 · 765 阅读 · 0 评论 -
solidity之call相关函数
三个方法都是用来进行合约交互的方法。由于没有进行更进一步的封装,不是最好的选择,一般不会直接使用到它们;另外一个显著的问题由于可以使用任意参数类型,在语言层面不能保证类型安全,所以不推荐使用。call() 方法call()是一个底层的接口,用来向一个合约发送消息1,也就是说如果你想实现自己的消息传递,可以使用这个函数。函数支持传入任意类型的任意参数,并将参数打包成32字节,相互拼接后向合约...转载 2018-05-07 00:00:03 · 2453 阅读 · 0 评论 -
Solidity transfer,call和send 的区别
address.transfer()throws on failure forwards 2,300 gas stipend (not adjustable), safe against reentrancy should be used in most cases as it's the safest way to send etheraddress.send()returns f...转载 2018-05-05 00:18:07 · 4973 阅读 · 0 评论 -
Truffle测试框架
Truffle测试框架Truffle 有一个标准的自动化测试框架,让你可以非常方便地测试您的合约.这个框架允许您以两种不同的方式编写简单可控的测试: 1. 在JavaScript中, 用于执行来自外部世界的合约,就像您的应用程序一样。 2. 在Solidity中, 用于在先进的,裸露的金属场景中执行您的合约。两种测试方式都有其优点和缺点,请参阅下面两部分。使用 Javascri...转载 2018-06-08 19:01:19 · 3683 阅读 · 0 评论 -
Tips for Writing Solidity Tests with Truffle
At first glance the Truffle Framework seems to be all setup for writing, deploying and testing contracts, and it’s very well done. There are however some instances where you may want to augment Truffl...转载 2018-06-06 23:01:23 · 190 阅读 · 0 评论 -
Solidity 中 revert(), assert() 和 require() 的使用方法
转载自:https://ethfans.org/posts/when-to-use-revert-assert-and-require-in-soliditySolidity 0.4.10 版本发布了新的 assert() , require() 和 revert() 函数,解决了以前代码中有困惑的地方。特别地,新 assert() 和 require() 代码会“确保”提高合约代码逻辑条理清...转载 2018-05-10 00:37:47 · 11300 阅读 · 0 评论 -
以太猫源码
源地址:https://ethfiddle.com/09YbyJRfiI以太猫源码分析:https://blog.csdn.net/tianlongtc/article/details/80013202// CryptoKitties Source code// Copied from: https://etherscan.io/address/0x06012c8cf97bead5deae23...原创 2018-05-05 00:24:43 · 1700 阅读 · 0 评论 -
OpenZeppelin集成Truffle编写健壮安全的合约
原文:http://truffleframework.com/tutorials/robust-smart-contracts-with-openzeppelin因为智能合约往往涉及金钱,保证Soldity代码没有错误,以及足够的安全是非常根本的。Zeppelin Solutions,一个智能合约审查服务商,已经意识到相关的需求。建立在他们的合约审查经验之上,他们把一些最佳实践整理到了OpenZe...转载 2018-05-07 22:55:49 · 748 阅读 · 0 评论 -
How To Create Token and Initial Coin Offering Contracts Using Truffle + Zeppelin Solidity
Token contracts are hot. Token crowd sales aka Initial Coin Offers(ICO) are hotter. There have been a lot going in terms of ICOs lately in the crypto world and if you would like to code one yourself, ...转载 2018-05-07 23:07:45 · 620 阅读 · 0 评论 -
自学dapp开发资料
思路与观点2018-02-01 Zeppelin Solution : Zeppelin与智能合约开发的演变 2016-2017: Stackexchange关于可升级的智能合约的问答 ConsenSys : 以太坊智能合约最佳实践 Evoluchain : Evoluchain代理合约2018-02-22 Jorge Izquierdo : ERC DelegateProxy #...原创 2018-05-08 16:53:00 · 735 阅读 · 0 评论 -
浅谈以太坊智能合约的设计模式与升级方法
浅谈以太坊智能合约的设计模式与升级方法1. 最佳实践2. 实用设计案例2.1 控制器合约与数据合约: 1->12.2 控制器合约与数据合约: 1->N2.3 控制器合约与数据合约: N->12.4 控制器合约与数据合约: N->N2.5 总结3. 升级3.1 控制器合约升级,数据合约不升级3.2 控制器合约不升级,数据合约升级3.3 控制器合约升级,数据合约升级4. 数据迁...转载 2018-06-02 18:51:56 · 523 阅读 · 0 评论 -
ERC721标准
什么是ERC-721?现在我们看到的各种加密猫猫狗狗都是基于ERC-721创造出来的,每只都是一个独一无二的ERC-721代币,不过ERC-721在区块链世界远不止猫猫狗狗,它更大的想象空间在于将物理世界的资产映射到区块链上。本文就来剖析下什么是ERC721.ERC721是什么在创建代币一篇,我们讲到过ERC20代币,和ERC20一样,ERC721同样是一个代币标准,ERC721官方简要解释是No...转载 2018-05-27 15:11:48 · 2955 阅读 · 2 评论 -
solidity数据位置
代码在执行前,一般会编译成指令。指令就是一个个逻辑,逻辑操作的是数据。代码,或者说业务,操作的其实是数据。非区块链中,代码操作的数据,一般会存到数据库中。在区块链里,区块链本身就是一个数据库。如果你使用区块链标记物产的所有权,归属信息将会被记录到区块链上,所有人都无法篡改,以标明不可争议的拥有权。所以在区块链中编程中,有一个数据位置的属性用来标识变量是否需要持久化到区块链中。1. 数据位置...转载 2018-05-27 16:48:02 · 693 阅读 · 0 评论 -
Web3与智能合约交互实战
写在前面在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互。这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dapp。因此,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,于是问题的答案就是web3.js。Web3.jsWeb3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使...转载 2018-05-27 17:10:23 · 1493 阅读 · 0 评论 -
详解 Solidity 事件Event
很多同学对Solidity 中的Event有疑问,这篇文章就来详细的看看Solidity 中Event到底有什么用?写在前面Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解,建议你先看以太坊是什么,另外本文在监听合约事件是对上一篇Web3与智能合约交互实战进行补充,如果阅读了上一篇可以更好的理解本文。什么是事件Evnet事件是以太坊虚拟机(E...转载 2018-05-27 20:43:58 · 2309 阅读 · 1 评论 -
智能合约最佳实践 之 Solidity 编码规范
每一门语言都有其相应的编码规范, Solidity 也一样, 下面官方推荐的规范及我的总结,供大家参考,希望可以帮助大家写出更好规范的智能合约。 命名规范避免使用小写的l,大写的I,大写的O 应该避免在命名中单独出现,因为很容易产生混淆。合约、库、事件、枚举及结构体命名合约、库、事件及结构体命名应该使用单词首字母大写的方式,这个方式也称为:帕斯卡命名法或大驼峰式命名法,比如...转载 2018-05-27 20:48:04 · 461 阅读 · 0 评论 -
ERC721
erc721接口https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.mderc721 github标准https://github.com/ethereum/EIPs/issues/721ERC165 :(interfaceID is 0x01ffc9a7 )https://github.com/ethereum/...原创 2018-05-27 20:48:41 · 434 阅读 · 0 评论 -
以太坊智能合约安全
原文地址:https://blog.zeppelin.solutions/onward-with-ethereum-smart-contract-security-97a827e47702If you’re new to Ethereum development, I recommend you read our Hitchhiker’s Guide to Smart Contracts...转载 2018-05-05 00:20:53 · 753 阅读 · 0 评论