码迷,mamicode.com
首页 > 其他好文 > 详细

B Test

时间:2018-08-10 14:27:18      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:特性   解锁   stop   browser   ini   漏洞   solidity   区块   出现   

智能合约

1,智能合约 - Smart Contract

一份电子形式的合同或者或者是协议
- 以一种计算机程序的形式展现,例如APP
- 通过计算机自动执行和验证,无需人为干预,例如柜台取款 Vs. ATM机取款
- 通过淘宝下单付款后商家发货,确认收货后系统自动转账给商家

法律层面上是否曾任有待商榷
- 小蚁的股权发行,登记 和 转让交易
- 二手房过户,能否绕过住建委
- 需要政府的推送和背书

2,The DAO

智能合约的风险案例 - The DAO
合约一旦部署成功将很难更改,计算机程序难免出现bug

The DAO 事件
- The mother of all DAOs
- 一个智能合约形式的VC基金,众筹了1.62亿美元
- 股东通过众筹获得代币和投资股票权
- 代码漏洞,被黑客将币大量的转走
- 被迫分叉,分裂为ETH 和 ETC 两种代币

3,以太坊的主要特性

Vitalik 与 2015年7月创建的区块链
区块链2.0,支持智能合约
支持图灵完备语言,solidity
Gas:衡量在一个计算中要求的费用单位
- 总费用 = Gas limit * Gas price
- gas不够时交易处理就会被终止,退回到之前的状态,不退费
虚拟机(virtual Machine): 通过软件模拟计算机硬件的一套系统,运行在宿主机系统上
以太坊虚拟机EVM: 执行职能合约的安全运行环境,通过执行合约的bytecode来执行智能合约
货币发行总量无上限,出块时间平均每12-15秒,每个区块奖励5ETH
叔区块uncle block奖励
Keccak SHA-3 哈希算法,反ASIC挖矿,需要大量的内存

4,部署运行

智能合约的部署运行 1/2
https://ethereum.gitbooks.io/frontier-guide/ //很好的学习资料
安装geth客户端 - go 语言版本
- brew tap ethereum/ethereum
- brew install ethereum

命令行部署智能合约
- geth -- datadir “privateChina” init genesis.json //创建私链
- geth -- datadir "privateChain" console //进入控制台
- geth attach ipc:/Users/Mac/Library/Ethereum/testnet/geth.ipc
- personal.listAccounts
- personnal.newAccount("12345678") //create new account
- web3.eth.getBalance(addr0) //查询账户余额
- amount = web3.toWei(1.5); eth.sentTransaction({from:addr0,to:addr1,value:amount}) //转给addr1 1.5个以太币
- personal.unlock.Account(addr0) // 解锁账户
- miner.slart(); admin.sleepBlocks(1);miner.stop() //挖矿

部署智能合约源代码
http://ethereum.github.io/browser-solidity //在线编译器

源代码


pragma solidity ^0.4.0

contract Rating{
    function setRating (bytes32 _key , unit256 _value) public{
        ratings[_key] = _value;
    }
    
    mapping (bytes32 => unit256) public ratings;
}

B Test

标签:特性   解锁   stop   browser   ini   漏洞   solidity   区块   出现   

原文地址:https://www.cnblogs.com/jacky804828002/p/B-010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!