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