Solidity合约:玉米生产溯源】的更多相关文章

实现思路: 首先用地址与每个结构进行映射,将关键信息储存在结构体中:或者将关键信息在外部通过json储存,内部储存对应的hash值: 使用issue函数表示:玉米地中收获足够数量的玉米并进行记录: 使用transfer函数表示:玉米在源产地与经销商手中流转,最终流转至消费者手中: 使用getCornCount函数:查询当前该角色所拥有的玉米数量: 使用IsInHead函数:判断当前该角色是否为玉米源产地: 使用LeafQuery函数:消费者查询玉米的来路,进行溯源操作: 使用NodeQueryF…
事件 2018年4月23日 BEC 一夜被偷64亿 2018年4月25日 SMT 再爆类似漏洞,火币Pro和OKEx相继暂停了SMT交易 2018年4月25日 BEC.SMT现重大漏洞,这8个智能合约也可能凉凉(MESH.UGToken.SMT.SMART.MTC.FirstCoin.GG Token.CNY Token.CNYTokenPlus) 原因 Solidity合约中的整数溢出漏洞 分析 BEC 合约代码地址:https://etherscan.io/address/0xc5d105e…
Solidity通过合约转ERC20代币   ERC20代币并不能像Ether一样使用sendTo.transfer(amt)来转账,ERC20代币只能通过token中定义的transfer方法来转账,每个账户的余额信息也只保存在token合约的状态变量中.如果要使用除token合约之外的合约进行ERC20代币的转账,那就需要这个合约能够调用ERC20代币合约中的transfer方法. pragma solidity ^0.4.21; contract token { function tran…
当调用其它合约的函数时,可以通过选项.value(),和.gas()来分别指定,要发送的ether量(以wei为单位),和gas值. pragma solidity ^; contract InfoFeed { function info() payable returns (uint ret) { return msg.value; } } contract Consumer { function deposit() payable returns (uint){ return msg.val…
合约中一般会有多种针对不同数据的操作:例如对于存证内容的增加.更新及查询,若不进行一套符合要求的权限控制,事实上整个合约在真实环境下是没有多少使用价值的.那么应当如何对合约的权限进行划分?我们针对Solidity语言来寻找其对应的解决方案. 一.通过地址标记解决方案 传统的数据库方式是将不同的接口进行区分标记,同时将不同角色所拥有的不同接口权限进行标记,存入数据库当中.Solidity由于本身语法能力限制不能实现较为复杂的功能.类似于Linux文件系统的操作权限,我们可以使用0和1来区分当前角色…
在自主学习Solidity智能合约的过程中,第一份入手资料无疑是官方文档.感谢前辈们还能提供出文档的中文翻译,作为我入门的第一手资料:文末附上有用的学习链接{持续更新中} 阅读完基础文档同时上手合约后,没有人带路的感觉有点迷茫.有幸找到了以太坊的区块链浏览器:https://etherscan.io/ 展示一下首页: 浏览器右上角有搜索框,可以查看地址.交易hash.区块.Token代币等信息.近期有某些事件会通过交易的方式在附言中加入自己需要永久保存的消息,作为向世界发声的一个工具,防止删帖,…
在 以太坊中合约间是可以相互调用,并且正常进行参数传递以及返回值处理. contract1.sol pragma solidity ^0.4.0; contract Test1 { uint256 public v=7; function vote(uint256 a) public returns (uint256) { v=a; return (a); } } contract2.sol pragma solidity ^0.4.0; import "./contract1.sol"…
Solidity 是一个面向合约的高级语言,其语法类似于JavaScript .是运行在以太坊虚拟机中的代码.这里我们用的是remix编译环境.是一个在线的编译环境.地址为http://remix.ethereum.org Solidity的合约类似于面向对象语言中的类.下面我们可以先创建一个合约. pragma solidity ^0.4.7; contract a{ uint x; function set(uint num) public{ x = num; } function get(…
原文地址:https://medium.com/@k3no/making-a-birthday-contract-858fd3f63618 先将datetime合约部署:https://github.com/pipermerriam/ethereum-datetime pragma solidity ^; contract DateTime { /* * Date and Time utilities for ethereum contracts * */ struct _DateTime {…
1. 属性[状态变量]的访问权限 public  internal[合约属性默认的权限]  private 说明:属性默认访问全向为internal,internal和private类型的属性,外部是访问不到的. 当属性为public时,会自动生成一个和属性同名并且返回值为当前属性的get方法. 例如: uint public _age; 会自动生成一个: function _age() constant returns (uint){ return _age; } 如果自己定义了_age方法,…
org.fisco.bcos.web3j.protocol.exceptions.TransactionException: Transaction has failed with status: 0x16. Gas used: 1163650. (not-enough gas?) at org.fisco.bcos.web3j.tx.Contract.executeTransaction(Contract.java:399) at org.fisco.bcos.web3j.tx.Contrac…
0x00 前言 Solidity(http://solidity.readthedocs.io/en/v0.4.24/) 是一种用与编写以太坊智能合约的高级语言,语法类似于 JavaScript. Solidity 编写的智能合约可被编译成为字节码在以太坊虚拟机上运行.Solidity 中的合约与面向对象编程语言中的类(Class)非常类似,在一个合约中同样可以声明:状态变量.函数.事件等.同时,一个合约可以调用/继承另外一个合约. 在 Solidity 中提供了 call.delegateca…
目录 目录 1.什么是 Mist 2.Mist 在哪里下载? 3.Mist 有哪些依赖? 4.如何安装 Mist? 4.1.安装 Mist 依赖工具包 4.2.安装 Mist 4.3.启动 Mist,连接到 Geth 5.使用 Mist 部署一个简单的智能合约 6.改善代币 6.1.如何部署 7.高级版的代币功能 7.1.去中心化的管理者 7.2.挖矿 7.3.冻结资产 7.4.自动交易 7.5.全部代码 7.6.使用以太币购买代币 7.7.卖出代币 8.常见问题 8.1.在调试Mist的过程中…
目录 目录 1.基本概念 1.1.什么是智能合约? 1.2.什么是Solidity? 1.2.1.Solidity的语言特性 1.3.什么是 Browser-solidity? 2.Browser-solidity 的源码在哪里? 3.如何在本地安装 Browser-solidity? 4.使用 Browser-solidity 编译代码 4.1 将 Browser-solidity 编译后的合约部署到 Geth 目录 1.基本概念 上篇文章中,已经讲过 Go-Ethereum 1.7.2 如何…
1 功能 这里我们使用在线编译器,打开网址 https://ethereum.github.io/browser-solidity 1.1 文件夹管理 最左边是文件夹管理,里面列出了当前工作区里的文件,remix可以支持从本地文件夹读取文件. 1.2 工作区 正中间是工作区,工作区上半部是代码编辑区,在这里可以写solidity合约. 下半部是日志区,在执行智能合约时,会显示transaction相关的信息.在输出日志的时候还可以查看Details和Debug信息. 1.3 功能区 最右边的是功…
本文章是参考一位大佬博客学来的. 智能合约题的环境主要包括两部分:一个是智能合约的部署,另一个就是监听合约事件进而发送flag的脚本. 智能合约部署 这里写的合约是指solidity合约,使用Remix IDE. 合约主要部署到以太坊测试链而非主链上(没钱…
译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件.本文的翻译获得了ConsenSys创始人Lubin先生的授权. 有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太坊编写智能合约和应用.这里所用到的工具,钱包,应用程序以及整个生态系统仍处于开发状态,它们将来会更好用! 第一部分概述,讨论了关键概念,…
鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 参考资料 证书说明:https://mp.weixin.qq.com/s/nRwHxt2E1TJiopJqLSvMOQ 参考资料:https://blog.csdn.net/FISCO_BCOS/article/details/95496272 (国密版本部署,很不错) 准备工作 1.机构A ,作为创世区块的服务器 148.70.170.96 (…
Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在 以太坊虚拟机(EVM) 上运行. Solidity 是静态类型语言,支持继承.库和复杂的用户定义类型等特性. 在部署合约时,应该尽量使用最新版本,因为新版本会有一些重大的新特性以及bug修复. 如果你才接触智能合约概念,推荐从一些 简单的Solidity合约例子开始,当你想开始尝试了解更多的细节,可以 学习 合约样例 和 深入理解S…
要清楚在区块链上开发DApp的架构[x][][][][][]   DApp是去中心化的应用   基于智能合约 去中心化的游戏规则 代币激励  …
solidity语言介绍以及开发环境准备   Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行. Solidity 是静态类型语言,支持继承.库和复杂的用户定义类型等特性. 它的语法接近于Javascript,是一种面向对象的语言.但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些: 以太坊底层是基于帐户,而非UTXO的,所以有…
想了解相关区块链开发,技术提问,请加QQ群:538327407 前提 已经部署好底层,外网可以正常请求访问. 正常流程 1.基础合约处理 https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/sdk_application.html#id2 将官方的Asset.sol 代码copy,使用vim Asset.sol 命令创建,copy 到里面. 上一小节,我们根据业务需求设计了合约Asset.sol的存…
主要章节如下: Solidity安全贴士 已知的攻击手段 竞态 可重入 交易顺序依赖 针对Gas的攻击 上溢/下溢 工程技术 参考文献 这篇文档旨在为Solidity开发人员提供一些智能合约的security准则.当然也包括智能合约的security理念.bug赏金计划指南.文档例程以及工具. 一般哲学 以太坊和其他复杂的区块链项目都处于早期阶段并且有很强的实验性质.因此,随着新的bug和安全漏洞被发现,新的功能不断被开发出来,其面临的安全威胁也是不断变化的.这篇文章对于开发人员编写安全的智能合…
fabric && cita 调研 总结 若计划完全依赖上游的基础功能而不做任何改造,建议选择 fabric:否则,应选择 cita,针对自身业务场景进行持续优化. 一.功能 1.可扩展性 微服务架构使 cita 在性能扩展.组件替换与开发语言选择等方面更加灵活. [ ] - fabric [x] - cita 2.是否支持账户模型 fabric 无明确的账户模型支持:cita 继承 ethereum 账户模型. [ ] - fabric [x] - cita 3.是否需要发币 双方均无需…
https://blog.zeppelin.solutions/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05 这个是简单的介绍 Hitchhiker’s Guide to Smart Contracts in Ethereum Smart Contract security in Ethereum is hard “Smart contracts are pretty difficult to get righ…
出处:https://cloud.tencent.com/developer/article/1192548 深度解析Solidity的17个坑及超详细避坑指南 写的很好,好好学习 1. Re-Entrancy重新入口,可重入性 本博客the security of smart contract- 1中已经解释过原因,这里用例子说明: pragma solidity ^0.4.23;contract EtherStore{    uint public withdrawalLimit = 1 e…
如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建.钱包创建.交易转账,交易与状态.智能合约开发与交互.过滤器和事件等,同时也详细说明如何使用web3j提供的API开发接口与以太坊进行交互,是java工程师学习以太坊应用开发的不二选择. 以太坊概述 以太坊是备受关注的区块链,它基于密码学技术和P2P通信技术 构建了一个去中心化的平台,所有的交易同步保存在每个节点中, 通过将区块单向级联成链,以太坊有效的保证了…
引言: 区块链技术的风起云涌预示着一个去中心化时代的来临,ethereum技术栈是目前业界最为应用广泛的基于区块链技术的技术方案,本文将记录如何基于本地环境来搭建私有区块链的开发环境. 部署私有区块链 这个步骤在笔者之前的文章中有详细的描述,感兴趣的读者可以参照: 基于以太坊构建私有区块链网络教程指南 开发工具介绍 Remix(Browser-Solidity) 基于browser的合约开放工具,官方推荐,比较简单易用 其它开放工具 - Intellj IDEA plugin - Vim/Ema…
FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造.开源工作组成员包括博彦科技.华为.深证通.神州数码.四方精创.腾讯.微众银行.亦笔科技和越秀金科等金链盟成员机构. 代码仓库:https://github.com/FISCO-BCOS 作者语 在多方参与的联盟链上,各方分工协作的同时也要做到职责分明.各司其职.链的管理者没有必要“既当裁判又当运动员”的参与业务交易,只参与交易的用户也不必很操心智能合约的开发部署.同时,"DO…
首先,EVM的设计初衷是什么?它为什么被设计成目前我们看的样子呢?根据以太坊官方提供的设计原理说明,EVM的设计目标主要针对以下方面: 简单性(Simplicity) 确定性(Determinism) 节省空间的bytecode 专为区块链设计 更加简单的安全性保证 容易优化 如果读者浏览一下这个文档,会发现EVM的设计看上去都非常的合理.那么问题在哪里呢?问题就出在它和目前主流的技术以及设计范例都格格不入.EVM如果作为一个毫无限制的非现实世界中的设计确实很不错.接下来笔者会围绕EVM各个方面…