B Test
Posted jacky804828002
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B Test相关的知识,希望对你有一定的参考价值。
智能合约
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的主要内容,如果未能解决你的问题,请参考以下文章
[React Testing] Use Generated Data in Tests with tests-data-bot to Improve Test Maintainability(代码片段