以太坊(英语:Ethereum)是一个开源且具有智能合约区块链平台,设计上是为了解决比特币扩展性不足的问题,以太坊区块链上的代币称为以太币(Ether),代码为ETH
智能合约是一个活在以太坊系统内的自动代理人,他有一个自己的以太币地址,当用户向智能合约的地址发送一笔交易后,该合约就被激活,然后根据交易中的额外信息,合约会运行自身的代码,最后返回一个结果,这个结果可能是从合约的地址发出另外一笔交易
查看交易资讯:https://etherchain.org/
产生以太币地址
https://ethereum.stackexchange.com/questions/3542/how-are-ethereum-addresses-generated
var crypto = require('crypto');var ecdh = crypto.createECDH('secp256k1');var sha3 = require('js-sha3')var hash2 = crypto.randomBytes(32)console.log('--------')console.log('私鑰')console.log(hash2); //私鑰,64位十六進制數 //使用hash2.toString('hex')即可看到16進位字串console.log('--------')// ECDH和ECDSA產生公私鑰的方式都相同var publickey = ecdh.setPrivateKey(hash2,'hex').getPublicKey('hex')console.log('公鑰')console.log(publickey); //公鑰(通過橢圓曲線算法可以從私鑰計算得到公鑰)console.log('--------')var sha3_256Key = sha3.keccak256(publickey);console.log(sha3_256Key)var address = sha3_256Key.substring(24, sha3_256Key.length); // 取後40字var address = "0x" + address; // console.log(address)之后到https://etherscan.io/右上输入刚产生的地址确认是正确的格式
常见名词:
Dapp:
A Dapp ('decentralized app') consists of two parts: a frontend, written in HTML, and a backend (think of it as the 'database' for your frontend).以太坊社区把基于智能合约的应用称为去中心化的应用程序(Decentralized App)。DApp的目标是(或者应该是)让你的智能合约有一个友好的界面
geth:
geth is the the command line interface for running a full ethereum node implemented in Go.
JSON-PRC:https://github.com/ethereum/wiki/wiki/JSON-RPC
简单说即为一个会回应json格式的server
https://github.com/ethereum/wiki/wiki/JSON-RPC
IPC:
为系统中两个两个执行绪互相传递资料的方法
https://zh.wikipedia.org/wiki/行程间通讯
http://albert-oma.blogspot.tw/2013/06/linux-ipc.html
Ethash:
以太币(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种
Dag:
https://github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md
https://github.com/ethereum/wiki/wiki/Ethash-DAG
EVM:
以太坊虚拟机,轻量级虚拟机环境,是以太坊中智能合约的运行环境
Gas:
燃料,每执行一条合约指令会消耗一定的燃料,当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚(rollback)状态,可与ether进行换算,但不可交易。
Gas Price: 每单位Gas多少钱( 会变动 )
Gas Limit: 多少单位个Gas( 通常不会变动 )
交易手续费Tx Fees = Gas Limit * Gas Price
Ether单位
可参考:http://ethdocs.org/en/latest/ether.html
相关实用网站
1、以太坊官方网站:https://ethereum.org/
2、以太坊原始码(官方):https://github.com/ethereum/
3、以太坊说明文件(官方):http://www.ethdocs.org/en/latest/index.html
4、以太坊网路状态(官方):https://ethstats.Net/
5、以太坊相关工具与资源网站(官方):http://ether.fund/
6、Solidity说明文件(官方):http://solidity.readthedocs.io/en/latest/
7、以太坊网路扫描(官方):http://etherscan.io/
8、以太坊官方部落格:https://blog.ethereum.org/
9、以太坊wiki百科:https://github.com/ethereum/wiki/wiki
10、以太坊中文爱好者网站:http://ethfans.org/
11、以太坊的gitter的实时交流网站:https://gitter.im/orgs/ethereum/rooms
12、以太坊的官方论坛:https://forum.ethereum.org/
13、以太坊第三方强大的IDE(Solidity IDE):https://live.ether.camp/
14、以太坊开发框架Truffle说明书:http://truffle.readthedocs.io/en/latest/
15、以太坊开发框架dapple说明书:http://dapple.readthedocs.io/en/master/
16、以太坊官方推荐开发框架Meteor说明书:https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor
Testnet
取得免费的etherhttps://ropsten.ether.camp/transactionshttp://faucet.ropsten.be:3001/查看区块情况https://testnet.etherscan.io/
METAMASK
https://metamask.io/
chrome的plugin,可以操作ethereum
API Provider
https://infura.io/#how-to
线上钱包(类似线上版的MIST)
https://wallet.ethereum.org/
安装metamask后可以打开此网站,之后即可读取本地钱包资料
并且使用metamask切换network
共识机制介绍
POW(Proof of Work,工作证明)是指获得多少货币,取决于你挖矿贡献的工作量,即为一般的矿机或显卡挖矿
POS(Proof of Stake,股权证明)根据你持有货币的量和时间进行利息分配的制度,在POS模式下,挖矿收益正比于你的币龄,而与电脑的计算性能无关,币龄即为持有以太币的时间
PoA ( Proof of Authority)有别于PoW (Proof-of-Work)需要解数学难题来产生block,PoA是依靠预设好的Authority nodes,负责产生block。可设定Authority node数量。可指定产生block的时间等