鏈客,專為開發者而生,有問必答!
【eos錢包開發 一】eos不得不說的一些概念
eos是什麼
eos是enterprise operation system的縮寫,它是商用分布式應用設計的一款區塊鏈作業系統。eos是引入的一種新的區塊鏈架構eosio,用於實現分布式應用的效能擴充套件。eos並不像位元幣和以太坊那樣是貨幣,而是基於eosio軟體專案之上發布的代幣,被稱為區塊鏈3.0。
eos的主要特點
eos通過並行鏈和dpos的方式解決了延遲和資料吞吐量的難題,eos是每秒可以上千級別的處理量,而位元幣每秒7筆左右,以太坊是每秒30-40筆。
eosio主要的程式
nodeos(node + eos = nodeos):可以使用外掛程式配置以執行節點的核心eosio節點守護程序。可以生成區塊、節點驗證、rpc api介面。
cleos (cli + eos = cleos):是乙個命令列工具,可以與nodeos公開的rest api進行互動並管理錢包。
keosd (key + eos = keosd):是乙個輕客戶端錢包,負責管理錢包,以便在廣播到網路之前保護金鑰和簽署交易,在本地計算機上執行並安全地將eosio金鑰儲存在錢包的元件中。
eoscpp:是乙個編譯器,將c++**編譯為wasm和abi。它生成.wasm、.abi的檔案並上傳到區塊鏈。
eos的賬戶體系
eos的賬戶體系是eos中的亮點特性之一,實現了基於角色的許可權管理和賬戶恢復功能,使得使用者可以靈活地以一種組織化的方式管理賬戶,並極大程度上保證了資產的安全性。
eos賬戶的特點:
eos中的賬戶名是12位可讀識別符號,由使用者自定義,在區塊鏈中唯一。它是轉賬時的標識,而其它區塊鏈賬的標識一般是位址。
eos的乙個賬戶下面可以包含多對公私鑰,每對擁有不同的許可權,而常見區塊鏈專案的賬戶只有一對公私鑰。
eos中每個賬戶剛建立時一般由個體擁有,通過單一公私鑰便能進行所有操作,後續可根據需要通過許可權配置將該賬戶擴充套件成組織賬戶,由多對公私鑰,即多個主體所共同控制,甚至可為組織外部個體或組織分配部分操作許可權,從而實現極其靈活的組織管理方式。
eos上的所有交易行為都是通過賬戶來完成的,通過賬戶執行任意操作時,eosio首先會驗證操作者是否擁有足夠的許可權,驗證通過該操作才能生效。
eos賬號的許可權
eos中,每個賬戶建立時會自帶兩個原生許可權:owner和active許可權。這也是預設的賬戶許可權配置,另外還支援自定義許可權。
owner許可權:代表賬戶所有權,該許可權可進行所有操作,包括更改owner許可權,可由一對或多對eos公私鑰或另一賬戶的某許可權實現許可權控制。因此,代表著owner許可權的eos公私鑰是最重要的,必須安全保管好。
active許可權:active即活躍許可權,能進行除更改owner許可權以外的所有操作,比如說轉賬、投票、購買ram等等。也是通過一對或多對eos公私鑰或另一賬戶的某許可權實現許可權控制。
自定義許可權:除了兩個原生許可權以外,eos還支援自定義許可權。我們可以將active的部分許可權,比如說投票權,任命給乙個自定義許可權voting。那麼無須owner、active許可權所對應的私鑰對投票操作進行簽名,單單通過voting許可權所對應的私鑰對投票操作進行簽名便可完成投票操作。
因此通過許可權配置可以將eos賬戶的部分操作許可權分配給第三方進行,避免了直接給出active許可權的私鑰,從而實現極其靈活和安全的組織管理方式。
權重和閾值
每個許可權都會有乙個閥值,初始時為1。許可權下的每對公私鑰都會有乙個權重,初始時每個許可權只有一對公私鑰且權重為1。後續賬戶可以修改許可權的閥值,可以對每個主體(即每對eos公私鑰或賬號)分配不同的權重,還可以修改許可權由多個主體管理。只有當公私鑰的權重大於等於閥值才能擁有該許可權進行相應操作。
常見區塊鏈專案的幣就放在公鑰裡,只有一對公私鑰,因此知道私鑰便可轉走,而eos中幣是放在賬戶裡的,公鑰裡面放的是帶權重的鑰匙,轉走賬戶裡面的幣需要擁有轉賬許可權的鑰匙的權重之和達到閾值才可進行。
建立賬號與轉賬的費用
eos主網中,賬號的建立需要儲存在eos主網中,需要占用區塊鏈生產節點的記憶體資源,一般為4k大小。而記憶體資源是有限的寶貴資源,因此建立賬號是要成本的,一般需要花費6美元。而記憶體**和eos**是隨市場變動的,因此eos主網賬戶註冊**也是變動的。因此每建立乙個eos新賬號都需要其他eos賬號消耗一定量的eos來幫忙建立,最初始的eos賬號由eos主網在對映階段建立完成。
而賬戶進行轉賬等操作時,是沒有手續費的,但是需要用到eos主網的cpu和頻寬資源。cpu就像會計的算賬能力,頻寬則可理解成轉賬的通道,這個需要通過eos抵押才能換取,但是不會產生消耗,不用了可以贖回。
eos的資源利用機制
我們知道,位元幣和以太坊中的交易手續費機制,其目的就是防止大量交易使系統擁堵。而eos取消了交易手續費,那麼如何避免系統資源的濫用?因而eos設計了一種新的資源使用機制:根據賬戶中eos的數量來分配系統資源,包括:ram(記憶體), network bandwidth (網路頻寬) 以及 cpu bandwidth (cpu 頻寬)。這些資源需要購買嗎?如何交易?接著往下看。
ram(記憶體):
在eos 中, ram(記憶體)的主要特點包括:
要將資料儲存在區塊鏈中需要消耗ram,比如在 eos 中轉賬、購買資源、投票等操作的時候,都有可能會消耗 ram (記憶體)。
如果你的ram 消耗殆盡,那麼你是無法進行上述這些需要消耗ram的操作的,所以我們需要有足夠的ram。
通過購買獲得的eos ram 資源可以買賣,買賣的**根據市場**動態調節,這個特點與買賣eos一樣。
ram可以通過eos購買的方式獲得也可以通過好友幫你購買,這個特點和通過抵押方式獲取 cpu 資源以及 net 資源不太一樣。
使用者在買賣ram 資源的時候,各需要消耗 0.5 % (千分之五) 的手續費,總共是 1% 的手續費。這筆費用被存在 eosio.ramfee 中,由 bp 節點進行管理。
記憶體是消耗資源,不可贖回,只能買賣。
cpu頻寬與網路頻寬
在eos中,cpu頻寬與網路頻寬的特性差不多,它們的主要特點包括:
它們採用抵押eos的方式獲取。當不再需要cpu與頻寬時,抵押的eos通證可以贖回,在贖回的時候,存在三天的贖回期。
每次使用轉賬功能時,都會消耗網路頻寬資源。
網路頻寬取決於過去三天消費的平均值,作為你下一次執行操作的費率。
如果沒有足夠的網路頻寬資源的話,你是無法使用eos 網路轉賬等基本功能的。
頻寬資源是可以隨著時間的推移,自動釋放。
關於基礎,不得不說
最近遇到好多問題,都與基本概念相關。忍不住,就想多說幾句。研究生面試,我出了乙個問題,乙個100khz的方波訊號,幅度大約是幾伏的數量級,想測量其有效值,用什麼儀器,怎麼測?多數學生一臉茫然,搞的我不好意思,慚愧題目是不是太難了。我急了,問學生,乙個1.5v的電池,其電壓有效值是多少?學生問我,直流...
不得不說的「跳槽」
現實中不難發現 越是高階人才,適合的機會就越少 的現象。身處金字塔中上層的人員,無論是職位還是薪水,起點都很高,這客觀上造成適合的職位機會少,職業路徑轉換成本過高等問題。我個人認為,it技術高層人士,如果要跳槽,務必要注意三宜和三忌。忌 病急亂投醫 宜 方法得當 公升遷至較高職位的人,大多都多年不找...
EOS 智慧型合約開發實踐(一)EOS錢包的簡單使用
eos,全稱enterprise operation system,即商用分布式作業系統。eos是一種全新的區塊鏈架構,旨在實現分布式應用的效能擴充套件。注意,它並不是像位元幣和以太坊那樣的貨幣,而是基於eos軟體專案之上發布的代幣,被稱為區塊鏈3.0。2.eos通過並行鏈和dpos的方式解決了延遲...