[区块链]黑科技区块链如何来建设“智慧城市”How Does the Black Technology Block Chain Build the “Smart City”

简介:

/* 
This creates a public tradeable fungible token in the Ethereum Blockchain. 
https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs 
这是一套标准的具有固定市值的以太坊密码合约。最新代码可以forkgithub的以下标准合约APIs地址。

Unmodified this will create a cryptoasset with a fixed market cap 
wholly owned by the contract creator. You can create any function 
to change this contract, like allowing specific rules for the issuance, 
destruction and freezing of any assets. This contract is intended for 
educational purposes, you are fully responsible for compliance with 
present or future regulations of finance, communications and the 
universal rights of digital beings. 
不需要进行修便能创建一个具有固定市值的token。其所有权由合同创造者全权拥有。您可以创建任何功能改变这个合同,比如允许发行的具体规则,破坏和冻结任何资产。本合同适用于教育目的,您完全有责任遵守目前或未来的金融,通讯和管理条例数字生存的普遍权利。

Anyone is free to copy, modify, publish, use, compile, sell, or 
distribute this software, either in source code form or as a compiled 
binary, for any purpose, commercial or non-commercial, and by any 
means. 
任何人都可以自由复制,修改,发布,使用,编译,出售或者以源代码形式或以编译形式分发此软件二进制,出于任何目的,商业或非商业,以及任何目的手段。

In jurisdictions that recognize copyright laws, the author or authors 
of this software dedicate any and all copyright interest in the 
software to the public domain. We make this dedication for the benefit 
of the public at large and to the detriment of our heirs and 
successors. We intend this dedication to be an overt act of 
relinquishment in perpetuity of all present and future rights to this 
software under copyright law. 
在承认版权法的司法管辖区中,作者或作者本软件的任何和所有版权利益软件都将贡献到公共领域。我们为此付出了我们的努力。根据版权法,此贡献行为是我们自己的一种公开的行为永远放弃所有现在和将来的权利软件。

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

本软件按“原样”提供,不提供任何形式的担保,明示或暗示,包括但不限于保证 
适销性,针对特定用途的适用性和不侵权。在任何情况下,作者均不对任何索赔,损害或责任负责其他责任,无论是在合同行为,侵权行为还是其他方面,来自,与本软件或使用有关的或与之相关的软件中的其他交易。

For more information, please refer to http://unlicense.org 
更多信息请参考http://unlicense.org 
*/ 
/* 定义函数我的通证LekkoToken */ 
contract LekkoToken {

/* 定义LekkoToken通证的变量包含 字符串定义的名称name,字符串定义的标识符symbol和8位无符号整型位decimals */
string public name;
string public symbol;
uint8 public decimals;

/* 定义了一个数组,用来表征合约所有余额的balanceOf */
mapping (address => uint256) public balanceOf;

/* 定义一个区块链上的一个公共事件Transfer来通知客户,其三个参数包含来源地址,去向地址和数值value */
event Transfer(address indexed from, address indexed to, uint256 value);

/* 通过对函数LekkoToken设置参数如通证总量的无符号256位整数_supply,通证名称字符串_name,通证缩写字母字符串_symbol以及无符号8位整数的代币精度对整个合约进行初始化 */
function LekkoToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {

    /* 如果没有对通证总量_supply进行设置,则默认设定为最小的100万个通证数量,当然这里在代码里面可以进行自定义最小数量额度。 */
    if (_supply == 0) _supply = 1000000;

    /* 如果增加其他函数对这些变量进行修改的话,这些定义的通证总量,名称和标识符是不会进行变更的*/
    balanceOf[msg.sender] = _supply;
    name = _name;
    symbol = _symbol;

    /* 如果你想要对通证的精度进行更细的分割或者粗放化,你可以在这个定义中进行修改,然后添加基本单位的小数位数  */
    decimals = _decimals;
}
    /* 以下是定义转账通证的函数transfer,主要包含发送目的地地址_to和256位无符号整型_value   */
function transfer(address _to, uint256 _value) {
    /* 根据以太坊规则,如果发送者发送超过其本身拥有余额以上的通证到其他地址取得时候,会判定失败throw掉。另外,对于发送目的地的余额加上获得的值_value小于发送目的地的余额的情况下,也会判定失败throw掉。第二个逻辑的目的即为发送的余额不能为负数。强调下,基本上一些比较低级的安全漏洞通过这个地方进行攻击。因为有些项目想要设置特定业务的时候,往往会在发送代币的逻辑上进行定制化,这样很容易造成漏洞被攻击并转移掉balance。因此要特别小心。   */
    if (balanceOf[msg.sender] < _value) throw;
    if (balanceOf[_to] + _value < balanceOf[_to]) throw;

    /* 这里是基本逻辑的定义,主要是对通证转移前后,原有_value的拥有者balanceOf[msg.sender]如果发送通证成功,应该在总额上减去转移的通证数量。相应的,通证转移的接收者balanceOf[_to]应该增加相应的数额_value。从逻辑上来说,如果上述逻辑成功,是不用判定转移后balanceOf[msg.sender]小于0的情况。如果特定业务逻辑需要修改的时候,对于0的判断还是很重要的,注意任何漏洞形成的可能。 */
    balanceOf[msg.sender] -= _value;
    balanceOf[_to] += _value;

    /* 对任何监听此次转账的人进行通知,区块链上更多的是通知满足条件进行此项智能合约作业的矿工 */
    Transfer(msg.sender, _to, _value);
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

}

整个发币的合约详解到此结束。其实可以看出来任何一个核心智能合约的编写并不是很难,逻辑其实也很简单。但是处于安全性的考虑,对于任何需要定制化的智能合约来说,一定要注意,对通证进行转账定义的时候,余额进出的控制。比较有名的几次攻击,尤其是历史上第一大案DAO的攻击,都基本问题出在这个地方。有兴趣的可以看我之前对DAO详解的文章。



原文发布时间为:2017年09月19日
本文作者:乐扣技术狗
本文来源:CSDN,如需转载请联系原作者。

目录
相关文章
|
监控
政法重点人员联防联控管理平台建设,智慧城市治安防控系统开发
政法重点人员联防联控管理平台实现了把基层人员纳入进来进行管理,整合全市现有的各领域、各部门、各条线的网格员队伍,使基层社会治理从粗放式﹑单一式向精细化、数据化转变,通过多网融合、一平台通管、“街乡吹哨,部门报到”、接诉即办、主动出击,从而推进社会治理创新、健全保障机制实现社会长效治理、提高管理和服务水平、打造更加和谐有序的小康社会。
191 1
|
安全 物联网 大数据
智慧城市建设呼唤“国家标准”
智慧城市建设呼唤“国家标准”
157 0
智慧城市建设呼唤“国家标准”
智慧城市建设正向高端发展 需循序渐进
智慧城市建设正向高端发展 需循序渐进
158 0
智慧城市建设正向高端发展 需循序渐进
|
数据采集 人工智能 大数据
打造新型智慧产业联盟,神州控股开启智慧城市建设3.0版
打造新型智慧产业联盟,神州控股开启智慧城市建设3.0版
204 0
打造新型智慧产业联盟,神州控股开启智慧城市建设3.0版
|
人工智能 数据可视化 机器人
聚力新基建 新华三助力成都高新区加速智慧城市建设
5月28日上午,“成都高新区新基建项目发布会(第一批)”在成都高新区网络理政中心正式举行。包括新华三集团在内的一批国内知名龙头企业参加了发布会。
聚力新基建 新华三助力成都高新区加速智慧城市建设
|
人工智能 资源调度 达摩院
成都TOCC—智慧城市交通建设
借助阿里云强大的运算能力和动态扩展能力,成都TOCC高效打通同一时空领域内各类交通信息,满足大流量、高并发、准实时的城市交通复杂数据处理需求。
1478 0
|
物联网
国家物联网与智慧城市研发专家张文生:智慧城市建设是一个漫长的过程
“现在的城市不能只谈我们的生活、商业,实际上应该与产业也是相结合的,如果不和产业结合,这个城市很难有大的发展。”
|
机器人
小贩新闻联播实力抢镜 | 助力智慧城市发展建设
央视指出“科技引领,助力高质量发展”,新一代智能机器人正在为我国发展助力,智慧型城市及智慧社区的建设将带动智能机器人的快速落地,形成新的经济增长点。
370 0
|
双11 大数据
阿里巴巴集团副总裁郭继军:智慧城市建设如何不变成房地产项目
阿里巴巴集团副总裁、阿里云策略及市场营销总裁郭继军出席未来城市产业峰会,并带来《城市数字化转型中的基础设施》主题演讲。在智慧城市的建设中,如何可以踏实前行?郭继军提到,目前技术的发展已经为城市的数字化转型提供了良好的基础,通过网络协同和智能平台化建设,为城市打造智能基础设施。