1、以太幣單位換算。以太坊的單位,沿襲了科學界的傳統(tǒng),用做過杰出貢獻的數(shù)學、密碼學專家的名字命名。以太坊的最小單位是 Wei。
雙鴨山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),雙鴨山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為雙鴨山近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的雙鴨山做網(wǎng)站的公司定做!
Kwei(Babbage)= 10 的 3 次方 Wei
Mwei(Lovelace)= 10 的 6 次方 Wei
Gwei(Shannon)= 10 的 9 次方 Wei
MicroEther(Szabo)= 10 的 12 次方 Wei
MilliEther(Finney)= 10 的 15 次方 Wei
Ether = 10 的 18 次方 Wei
2、以太坊賬戶不同于比特幣中UTXO。 賬戶分兩類: 外部擁有賬戶(EOA)(普通賬戶),還有合約賬戶。
普通賬戶:存放以太幣的賬戶,可以隨意生成,特性如下:
合約 賬戶:是功能和數(shù)據(jù)的集合,存在于以太坊的特定地址(合約地址),特性如下:
3、以太坊交易:以太坊中一個賬戶向另一個賬戶發(fā)送被簽名消息數(shù)據(jù)包的過程,區(qū)塊鏈會記錄并存儲相關(guān)數(shù)據(jù)。以太坊智能合約改變一個合約賬戶的數(shù)據(jù)狀態(tài)也是一筆交易,同樣要花費手續(xù)費。
交易的要素包含以下幾點:
4、區(qū)塊gas limit是單個區(qū)塊允許的最多gas總量,以此可以用來決定單個區(qū)塊中能打包多少筆交易。區(qū)塊的gas limit是由在網(wǎng)絡(luò)上的礦工決定的,可以參考https://stats.ethfans.org/ 反饋的數(shù)據(jù)。Gas Price 燃料價格,GasUsed:該交易消耗的總gas數(shù)量。交易費 = gasUsed gasPrice,最高交易成本=Gas Price Gas Limit 。
5、交易發(fā)出后,會向全網(wǎng)廣播,途徑很多個礦工節(jié)點,這些節(jié)點又會幫你轉(zhuǎn)發(fā)給下一個節(jié)點,直到你的交易被礦工打包進區(qū)塊中。每一次轉(zhuǎn)發(fā)都會消耗一部分Gas,如果被打包之前燃料耗盡,達到Gas Limit設(shè)置的上限,那這交易就一定會失敗。ETH會退回,但燃料費還是要扣除。
6、智能合約,以太坊中創(chuàng)新在于它首次提出smart contract(智能合約)的概念和底層實現(xiàn)。所謂合約是指代碼(功能)和數(shù)據(jù)(狀態(tài))的集合,存在于以太坊區(qū)塊鏈的特定地址。智能合約是通過交易或消息調(diào)用的方式觸發(fā)并由以太坊虛擬機(EVM)解釋執(zhí)行。
7、EVM是Ethereum Virtual Machine的簡寫,稱為以太坊虛擬機,EVM是以太坊平臺最核心的組件,所有的智能合約二進制字節(jié)碼都依賴EVM來執(zhí)行。EVM是一個運行環(huán)境,支持任意復(fù)雜的代碼,在科學術(shù)語中稱為“圖靈完備的”。
8、Solidity是以太坊官方推薦的以太坊應(yīng)用的高級編程語言,它的語法類似JavaScript,它被設(shè)計成以編譯的方式生成以太坊虛擬機代碼。所以如果我們要創(chuàng)建自己的合約代碼,使用Solidity是非常容易上手的。
9、Browser-solidity是一個官方提供的基于瀏覽器的合約編譯器,使用它進行一些簡單的合約開發(fā)測試是非常好用的,另外它的編譯器版本會及時更新。Solidity在線編譯器網(wǎng)址:https://ethereum.github.io/browser-solidity
10、Mist是以太坊官方發(fā)布的圖形客戶端,它兼具錢包、開發(fā)調(diào)試于一體的圖形化工具,方便我們創(chuàng)建、開發(fā)、測試和部署智能合約。Mist支持Windows、Mac 、Linux等各種操作系統(tǒng)。
11、Geth的全稱是Go-ethereum,是一個以太坊客戶端,也是目前最常用的客戶端,使用Geth進行開發(fā)調(diào)試也是比較好用的,Geth客戶端具有完備的操作指令,在我們剛剛接觸以太坊開發(fā)時,使用Geth進行簡單的私鏈調(diào)試是非常好的學習環(huán)境。
geth命令用法:
geth [選項] 命令 [命令選項] [參數(shù)…]
命令:
account 管理賬戶
attach 啟動交互式JavaScript環(huán)境(連接到節(jié)點)
bug 上報bug Issues
console 啟動交互式JavaScript環(huán)境
copydb 從文件夾創(chuàng)建本地鏈
dump Dump(分析)一個特定的塊存儲
dumpconfig 顯示配置值
export 導(dǎo)出區(qū)塊鏈到文件
import 導(dǎo)入一個區(qū)塊鏈文件
init 啟動并初始化一個新的創(chuàng)世紀塊
js 執(zhí)行指定的JavaScript文件(多個)
license 顯示許可信息
makecache 生成ethash驗證緩存(用于測試)
makedag 生成ethash 挖礦DAG(用于測試)
monitor 監(jiān)控和可視化節(jié)點指標
removedb 刪除區(qū)塊鏈和狀態(tài)數(shù)據(jù)庫
version 打印版本號
wallet 管理Ethereum預(yù)售錢包
help,h 顯示一個命令或幫助一個命令列表
ETHEREUM選項:
--config value TOML 配置文件
--datadir “xxx” 數(shù)據(jù)庫和keystore密鑰的數(shù)據(jù)目錄
--keystore keystore存放目錄(默認在datadir內(nèi))
--nousb 禁用監(jiān)控和管理USB硬件錢包
--networkid value 網(wǎng)絡(luò)標識符(整型, 1=Frontier, 2=Morden (棄用), 3=Ropsten, 4=Rinkeby) (默認: 1)
--testnet Ropsten網(wǎng)絡(luò):預(yù)先配置的POW(proof-of-work)測試網(wǎng)絡(luò)
--rinkeby Rinkeby網(wǎng)絡(luò): 預(yù)先配置的POA(proof-of-authority)測試網(wǎng)絡(luò)
--syncmode "fast" 同步模式 ("fast", "full", or "light")
--ethstats value 上報ethstats service URL (nodename:secret@host:port)
--identity value 自定義節(jié)點名
--lightserv value 允許LES請求時間最大百分比(0 – 90)(默認值:0)
--lightpeers value 最大LES client peers數(shù)量(默認值:20)
--lightkdf 在KDF強度消費時降低key-derivation RAM&CPU使用
開發(fā)者(模式)選項
--dev 使用POA共識網(wǎng)絡(luò),默認預(yù)分配一個開發(fā)者賬戶并且會自動開啟挖礦。
--dev.period value 開發(fā)者模式下挖礦周期 (0 = 僅在交易時) (默認: 0)
ETHASH 選項:
--ethash.cachedir ethash驗證緩存目錄(默認 = datadir目錄內(nèi))
--ethash.cachesinmem value 在內(nèi)存保存的最近的ethash緩存?zhèn)€數(shù) (每個緩存16MB ) (默認: 2)
--ethash.cachesondisk value 在磁盤保存的最近的ethash緩存?zhèn)€數(shù) (每個緩存16MB) (默認: 3)
--ethash.dagdir "" 存ethash DAGs目錄 (默認 = 用戶hom目錄)
--ethash.dagsinmem value 在內(nèi)存保存的最近的ethash DAGs 個數(shù) (每個1GB以上) (默認: 1)
--ethash.dagsondisk value 在磁盤保存的最近的ethash DAGs 個數(shù) (每個1GB以上) (默認: 2)
交易池選項:
--txpool.nolocals 為本地提交交易禁用價格豁免
--txpool.journal value 本地交易的磁盤日志:用于節(jié)點重啟 (默認: "transactions.rlp")
--txpool.rejournal value 重新生成本地交易日志的時間間隔 (默認: 1小時)
--txpool.pricelimit value 加入交易池的最小的gas價格限制(默認: 1)
--txpool.pricebump value 價格波動百分比(相對之前已有交易) (默認: 10)
--txpool.accountslots value 每個帳戶保證可執(zhí)行的最少交易槽數(shù)量 (默認: 16)
--txpool.globalslots value 所有帳戶可執(zhí)行的最大交易槽數(shù)量 (默認: 4096)
--txpool.accountqueue value 每個帳戶允許的最多非可執(zhí)行交易槽數(shù)量 (默認: 64)
--txpool.globalqueue value 所有帳戶非可執(zhí)行交易最大槽數(shù)量 (默認: 1024)
--txpool.lifetime value 非可執(zhí)行交易最大入隊時間(默認: 3小時)
API和控制臺選項:
--rpc 啟用HTTP-RPC服務(wù)器
--rpcaddr value HTTP-RPC服務(wù)器接口地址(默認值:“l(fā)ocalhost”)
--rpcport value HTTP-RPC服務(wù)器監(jiān)聽端口(默認值:8545)
--rpcapi value 基于HTTP-RPC接口提供的API
--ws 啟用WS-RPC服務(wù)器
--wsaddr value WS-RPC服務(wù)器監(jiān)聽接口地址(默認值:“l(fā)ocalhost”)
--wsport value WS-RPC服務(wù)器監(jiān)聽端口(默認值:8546)
--wsapi value 基于WS-RPC的接口提供的API
--wsorigins value websockets請求允許的源
--ipcdisable 禁用IPC-RPC服務(wù)器
--ipcpath 包含在datadir里的IPC socket/pipe文件名(轉(zhuǎn)義過的顯式路徑)
--rpccorsdomain value 允許跨域請求的域名列表(逗號分隔)(瀏覽器強制)
--jspath loadScript JavaScript加載腳本的根路徑(默認值:“.”)
--exec value 執(zhí)行JavaScript語句(只能結(jié)合console/attach使用)
--preload value 預(yù)加載到控制臺的JavaScript文件列表(逗號分隔)
網(wǎng)絡(luò)選項:
--bootnodes value 用于P2P發(fā)現(xiàn)引導(dǎo)的enode urls(逗號分隔)(對于light servers用v4+v5代替)
--bootnodesv4 value 用于P2P v4發(fā)現(xiàn)引導(dǎo)的enode urls(逗號分隔) (light server, 全節(jié)點)
--bootnodesv5 value 用于P2P v5發(fā)現(xiàn)引導(dǎo)的enode urls(逗號分隔) (light server, 輕節(jié)點)
--port value 網(wǎng)卡監(jiān)聽端口(默認值:30303)
--maxpeers value 最大的網(wǎng)絡(luò)節(jié)點數(shù)量(如果設(shè)置為0,網(wǎng)絡(luò)將被禁用)(默認值:25)
--maxpendpeers value 最大嘗試連接的數(shù)量(如果設(shè)置為0,則將使用默認值)(默認值:0)
--nat value NAT端口映射機制 (any|none|upnp|pmp|extip:) (默認: “any”)
--nodiscover 禁用節(jié)點發(fā)現(xiàn)機制(手動添加節(jié)點)
--v5disc 啟用實驗性的RLPx V5(Topic發(fā)現(xiàn))機制
--nodekey value P2P節(jié)點密鑰文件
--nodekeyhex value 十六進制的P2P節(jié)點密鑰(用于測試)
12、Truffle是針對基于以太坊的Solidity語言的一套開發(fā)框架。可以利用他開發(fā)去中心化應(yīng)用(Dapps)
13、testrpc是在本地使用內(nèi)存模擬的一個以太坊環(huán)境,對于開發(fā)調(diào)試來說,更為方便快捷,當合約在testrpc中測試通過后,再部署到geth中去。testrpc不同于geth,geth是真正的以太坊環(huán)境。
14、hash概念:
hash算法是一種加密算法,是把任意長度的輸入通過散列函數(shù)變換為固定散列長度的輸出算法。這類算法是公開的,且是一種單向密碼體制,即一個從明文到密文的不可逆映射,只有加密過程,沒有解密過程。
如:MD5和SHA-1可以說是應(yīng)用最廣泛的Hash算法。
具有五個特性:(1)易計算,任意給定輸入容易計算;(2)易壓縮,輸入任意長度輸出長度固定;(3)單向性,沒有可逆算法解密;(4)輸入敏感,任何微小改變會造成輸出很大的變化;(5)抗碰撞性,很難找到輸入不同輸出結(jié)果相同的hash對