问道区块链_区块链学习_v1.0.0_持续更新。。。
本系列內容參考圖
創建共識網絡調用部署挖礦消耗編寫超級鏈組件節點多節點賬號智能合約合約賬號燃料耗品代幣開發者區塊尊重原創,轉載請注明出處https://blog.csdn.net/cc007cc009/article/details/102902294
尊重原創,轉載請注明出處 - https://blog.csdn.net/cc007cc009/article/details/102902294
文章目錄
- 本系列內容參考圖
- 尊重原創,[轉載請注明出處https://blog.csdn.net/cc007cc009/article/details/102902294](https://blog.csdn.net/cc007cc009/article/details/102902294)
- 前言
- 概念
- Hash
- SHA-256
- 無中心化
- Block
- 創世區塊
- 塊相關
- 節點
- DAG:Directed Acyclic Graph
- p2p廣播
- 超級鏈
- Hyperledger
- Fabric
- 共識
- 智能合約
- 部署合約
- 私鑰
- 以太坊
- EOS
- 提案
- 混盤技術
- 百度超級鏈中的平行鏈
- utxo
- 玩轉開源組件 - 站在巨人的肩膀
- XuperUnion
- 安裝包部署
- 安裝Golang
- g++
- git
- 程序
- Docker部署 - 待續
- 鏈的初始化
- 創世
- 節點
- 賬戶
- 覆蓋原節點賬戶
- 跨節點操作
- 交易地址
- 交易
- 多重簽名
- 區塊鏈自身運行的參數升級
- P2P多節點部署
- 概念
- 具體部署
- 智能合約
- 合約賬戶
- 編譯合約
- 部署合約
- 調用合約
- 查詢部署過的合約
- 查詢賬號的ACL
- 查詢余額
- 自己寫合約
- GRPC基礎 Protobuf
- 撰寫合約-寫代碼 請見智能合約教程
- 測試環境
- 測試命令
- 操作指導
- 升級XuperUnion
- 問答
- 客戶端發送交易后,怎么查詢是否成功上鏈。通過querytx判斷tx狀態還是有其他事件機制?支持事件通知么?
- 密碼學中橢圓曲線選擇使用P-256的考慮?
- 以太坊
- Cosmos - 待續
| 問道區塊鏈_區塊鏈學習_v1.0.0_持續更新。。。 | v1.0.0 | 若布與宮合 | 8416837 | protobuf3.10.1 golang1.13.4 | LiteIDE | protobuf golang |
前言
- 簡明的基礎技術落地筆記;
- 有興趣的同學請一起討論;
- 難免紕漏,請斧正。
概念
Hash
- Hash,一般翻譯做“散列”,也有直接音譯為“哈希”的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小于輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
- 哈希表是根據設定的哈希函數H(key)和處理沖突方法將一組關鍵字映射到一個有限的地址區間上,并以關鍵字在地址區間中的象作為記錄在表中的存儲位置,這種表稱為哈希表或散列,所得存儲位置稱為哈希地址或散列地址。作為線性數據結構與表格和隊列等相比,哈希表無疑是查找速度比較快的一種。
- 用途。身份驗證和數字簽名,——也稱為“消息摘要”。
SHA-256
將任意數據編碼為256位的二進制串。hash碰撞的概率極低。
Java代碼
Output
c75c7b4b24d94e4f2686022d917654d21ade275bfbfab8976a7f8540e02af462 長度 === 64 c75c7b4b24d94e4f2686022d917654d21ade275bfbfab8976a7f8540e02af462 長度 === 64 a969eac9922e2b88f48ec1f8212c8a4a747292dca1ff785812005c55d7e7c237 長度 === 64無中心化
- 無管理員。數據庫有管理員,而區塊鏈沒有。
Block
- 記錄。每寫入記錄,就是建立一個區塊(Block)。
創世區塊
第一個塊。
塊相關
- 出塊時間:區塊產生的時間間隔。
節點
可看成是服務器。客戶端為什么是服務器?舉個栗子,互聯網誕生之初,個人電腦經常充當服務器的角色。
DAG:Directed Acyclic Graph
有向無環圖.有人提出用DAG的拓撲結構來存儲區塊,解決區塊鏈的效率問題.
p2p廣播
- 節點向其它節點廣播。節點通信基于加密的P2P網絡,本質上和cs通信原理相同;局域網穿透技術采用NAT方案.
- 對等網絡,即對等計算機網絡,是一種在對等者(Peer)之間分配任務和工作負載的分布式應用架構,是對等計算模型在應用層形成的一種組網或網絡形式。因此,從字面上,P2P可以理解為對等計算或對等網絡。
在P2P網絡環境中,彼此連接的多臺計算機之間都處于對等的地位,各臺計算機有相同的功能,無主從之分,一臺計算機既可作為服務器,設定共享資源供網絡中其他計算機所使用,又可以作為工作站,整個網絡一般來說不依賴專用的集中服務器,也沒有專用的工作站。網絡中的每一臺計算機既能充當網絡服務的請求者,又對其它計算機的請求做出響應,提供資源、服務和內容。通常這些資源和服務包括:信息的共享和交換、計算資源(如CPU計算能力共享)、存儲共享(如緩存和磁盤空間的使用)、網絡共享、打印機共享等。P2P網絡具有分散性、可擴展性、健壯性等特點,這使得P2P技術在信息共享、實時通信、協同工作、分布式計算、網絡存儲等領域都有廣闊的應用。
- 節點發現主流協議有Gossip以及KAD。
- NAT技術是一種把內部網絡(簡稱為內網)私有IP地址轉換為外部網絡(簡稱為外網)公共IP地址的技術,它使得一定范圍內的多臺主機只利用一個公共IP地址連接到外網,可以在很大程度上緩解了公網IP地址緊缺的問題.
超級鏈
百度超級鏈、Ethereum、EOS、Fabric.
Hyperledger
Linux基金會2015年成立了超級賬本項目(Hyperledger)來推動跨行業區塊鏈技術。并非聲明一個單一的區塊鏈標準,它鼓勵通過社區來合作開發區塊鏈技術,鼓勵開源知識產權,采用隨時間演進的關鍵標準。
Fabric
Hyperledger Fabric是Hyperledger區塊鏈項目中的一員。像其他區塊鏈技術一樣,它有一個賬本,使用智能合約,是一個由參與者共同管理他們的交易的系統。
共識
需要一種機制來認可運行在區塊鏈上的行為(包括比特幣的運營,亦或是運行在區塊鏈上的其他業務),這種機制就是共識機制。
智能合約
英文即Smart Contracts.并不是人工智能(artificial intelligence)那個智能。薩博于1994年提出此概念。
- “一個智能合約是一套以數字形式定義的承諾(commitment),包括合約參與方可以在上面執行這些承諾的協議。”
Thomas Bocek. Digital Marketplaces Unleashed. Springer-Verlag GmbH. 2017-09-15: 169-184. ISBN 978-3-662-49274-1.
部署合約
由合約賬號部署合約。
私鑰
丟失將無法找回。
以太坊
運用數字貨幣和編程語言的結合解決問題。
EOS
Enterprise Operation System。“EOS是一個區塊鏈開發平臺,具有可擴展性強、支持大規模商業應用等特點。首先,EOS 采取DPoS共識算法及其他技術手段預期實現每秒百萬級別交易請求,將能夠支持數千個商業級的DAPPs。以太坊是一條公鏈,在以太坊鏈上運行的每一個應用都會消耗整條鏈的資源,但EOS 只是區塊鏈基礎架構,開發者可以自由地在 EOS 上創建公鏈,鏈與鏈之間不會影響彼此的資源使用,不會出現因個別應用資源消耗巨大而造成網絡大面積擁堵。 其次,在 EOS 上轉賬與運行智能合約并不需要消耗 EOS代幣,這將吸引更多的用戶。 最后,EOS出現系統錯誤時,其“憲法”可用于區分此錯誤是否確實為BUG,判斷社區的修復舉措是否得當。”
提案
一種解決系統升級問題的機制。比如修改區塊大小,升級共識算法。提案整個過程涉及 到發起提案、參與投票、投票生效三個階段。
混盤技術
- 混盤技術也稱為多盤技術,將多個磁盤從邏輯上當作一個磁盤來處理,主要用于解決只支持本地單盤場景下數據庫空間不夠的問題(即擴展性問題),比如被廣泛使用的LevelDB。目前對LevelDB的多盤擴展技術,大部分是采用了多個LevelDB實例的方式,也就是每個盤一個單獨的LevelDB實例。
- 多個LevelDB實例的方式好處是簡單,不需要修改LevelDB底層代碼,缺點是犧牲了多行原子寫入的功能。在區塊鏈的應用場景中,需要保證多個寫入操作是原子性的特性。超級鏈改造LevelDB存儲引擎本身,在引擎內部完成了數據文件的多盤放置,能夠確保所有寫入更新操作的原子性,從而能夠滿足區塊鏈場景的交易原子性要求。
百度超級鏈中的平行鏈
- 百度超級鏈通過系統合約方式創建平行鏈,平行鏈之間相互獨立,擁有各自的賬本和共識算法等模塊,目前平行鏈之間共享p2p網絡。不同的業務可以跑在不同的平行鏈上,起到了業務隔離效果,在使用平行鏈時,需要通過–name指定需要操作的平行鏈的名字。
utxo
UTXO(unspenttransaction outputs)是未花費交易輸出。交易輸出了,但是沒花費出去,比如找零。
玩轉開源組件 - 站在巨人的肩膀
XuperUnion
安裝包部署
- 環境 Ubuntu 18.04.2 || CentOS7
安裝Golang
- 命令
g++
sudo apt-get install g++ # Ubuntu 18 已預置 g++ --version # 查看g++是否安裝,如果安裝了則output:g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0git
apt-get install git程序
cd 預安裝目錄 # 存放源碼的目錄,在這里對源碼make git clone https://github.com/xuperchain/xuperunion git clone https://gitee.com/baidu/XuperUnion # 更快 # 解壓后 cd 根目錄 make # 執行make后,等待 ... cd output/ # 發現xchain、xchain-cli目錄- 目錄意義
| node/ | 根節點目錄 | |
| -----/conf | xchain.yaml:xchain服務的配置信息,plugins.conf: 插件的配置信息 防止沖突,部署時根據需要修改端口號 | |
| -----/data | 數據的存放目錄,創世塊信息,以及共識和合約的樣例 | |
| -----/-----/blockchain | 賬本目錄 | |
| -----/-----/keys | 此節點的地址,唯一性 | |
| -----/-----/netkeys | 此節點的網絡標識ID,唯一性 | |
| -----/-----/config | 創始的共識采用tdpos模式,指定單一地址有權利出塊 | |
| -----/logs | 程序日志目錄 | |
| -----/plugins | so的存放目錄 | |
| -----/xchain | 服務的二進制文件 | |
| -----/xchain-cli | 客戶端工具 | |
| -----/wasm2c | wasm工具 |
至此,XuperUnion程序準備完畢。
Docker部署 - 待續
鏈的初始化
創世
創建第一個區塊
# 創建xuper鏈 ./xchain-cli createChain # 客戶端創建創世區塊。若是共識搭建,請先配置再創建。 dump_chain # 丟棄命令output log見下文,較長。
t=2019-11-17T11:29:18+0800 lvl=dbug msg="create block chain by contract" module=xchain from=xuper toCreate=xuper t=2019-11-17T11:29:18+0800 lvl=info msg="ledger meta" module=xchain genesis_block= tip_block= trunk_height=0 t=2019-11-17T11:29:18+0800 lvl=trce msg="Start to ConfirmBlock" module=xchain t=2019-11-17T11:29:18+0800 lvl=info msg="begin format genesis block" module=xchain t=2019-11-17T11:29:18+0800 lvl=info msg="start to confirm block" module=xchain blockid=0d7d3ba836179b81f6e3887f3710f41e5807586678e26d36478f677feea7bd36 txCount=1 t=2019-11-17T11:29:18+0800 lvl=dbug msg="print block size when confirm block" module=xchain blockSize=1415 blockid=0d7d3ba836179b81f6e3887f3710f41e5807586678e26d36478f677feea7bd36 t=2019-11-17T11:29:18+0800 lvl=dbug msg="confirm block cost" module=xchain blkTimer="saveHeader: 0.15 ms,saveAllTxs: 0.61 ms,saveToDisk: 0.08 ms,total: 1.06ms" t=2019-11-17T11:29:18+0800 lvl=info msg="ConfirmBlock Success" module=xchain Height=1 t=2019-11-17T11:29:18+0800 lvl=info msg="utxo total is estimated" module=xchain total=0 t=2019-11-17T11:29:18+0800 lvl=dbug msg="debug tx" module=xchain txid=92adc3e88be5cc5aec29baa17d11b78b9814b7279a1125f347ac83ad04b2bb17 t=2019-11-17T11:29:18+0800 lvl=dbug msg=txoutput module=xchain offset=0 addr=dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN amount=100000000000000000000 t=2019-11-17T11:29:18+0800 lvl=dbug msg="hit queryblock cache" module=xchain blkid=0d7d3ba836179b81f6e3887f3710f41e5807586678e26d36478f677feea7bd36 t=2019-11-17T11:29:18+0800 lvl=info msg="unconfirm table size" module=xchain unconfirmTxMap=0 t=2019-11-17T11:29:18+0800 lvl=dbug msg="autogen tx list size, before play block" module=xchain len=0 t=2019-11-17T11:29:18+0800 lvl=trce msg=" start to dotx" module=xchain txid=92adc3e88be5cc5aec29baa17d11b78b9814b7279a1125f347ac83ad04b2bb17 t=2019-11-17T11:29:18+0800 lvl=trce msg=" insert utxo key" module=xchain utxoKey=UdpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN_92adc3e88be5cc5aec29baa17d11b78b9814b7279a1125f347ac83ad04b2bb17_0 amount=100000000000000000000 t=2019-11-17T11:29:18+0800 lvl=dbug msg="autogen tx list size, after play block" module=xchain len=0 cd /home/app/blockChain/x/data/blockchain/xuper # 這里存儲了創世區塊信息。 cd data/blockchain/ # 查看鏈名,bcname,即xuper,使用./xchain-cli status查詢bcname節點
- 創建節點.節點,區別于區塊,它是一個客戶端,礦工節點。
在根目錄查看日志tail -f nohup.out -n 500
# check服務運行狀況 ./xchain-cli status -H 127.0.0.1:37101 head /home/app/blockChain/x/data/keys/address && echo # 當前節點的地址- 某些時候,--host 127.0.0.1:37101 或 -H 127.0.0.1:37101可以省略。
賬戶
# 創建普通用戶, 包含地址,公鑰,私鑰 ./xchain-cli account newkeys --output data/bob # 注意這里是cli,同創世區塊的創建 # 在bob目錄下會看到文件address,publickey,privatekey生成 head data/bob/* && echo # 展示公私鑰對output log
create account using crypto type default create account in data/bob- 余額
覆蓋原節點賬戶
如果data/keys里面已經有賬戶,但是想更新它,那么執行:
./xchain-cli account newkeys --output data/keys -f # -f 強制覆蓋 cat data/keys/address && echo # /home/app/moreChain/x003 YjuXEdGX3Y82JWN38WW3uMybUvSHhExgd跨節點操作
- 轉賬
交易地址
與用戶數據掛鉤的最小單元。地址可以是合約賬號,也可以是由公鑰生成的一個長度為33的字符串。
交易
- 轉賬
交易信息 - 36幣
"txOutputs": [{"amount": "36","toAddr": "fszZouvYxmyhdhV4AB3q4TfpzZd6ge1YP"},{"amount": "999964","toAddr": "dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN"}],
其中包含一個塊id0c607121b1f182fb44b64442b1eaabd7048758e1bde030ffa4e264b7022fd3f9。下文圖示一個塊id:
截圖中可見區塊高度已達到85;
./xchain-cli status -H 127.0.0.1:37101- 多重簽名交易
- 確認該交易已經上鏈(標志是blockid不為空了)
多重簽名
多重簽名是指在數字簽名中,有時需要多個用戶對同一個交易進行簽名和認證,例如某些合約賬戶下的數據需要多個人【授權】才能修改或轉賬。
區塊鏈自身運行的參數升級
包括:block大小、交易大小、挖礦獎勵金額和衰減速度等。
P2P多節點部署
概念
- 選一個節點作為“bootNode”,其他節點啟動前都配置這個“bootNode”的地址即可實現
- 獲取bootNode URL
具體部署
- TDPoS共識的環境部署注意事項
【注意】修改完每個節點的創世塊配置后,需要確認各節點的 data/blockchain 目錄下內容為空。然后重新按照下述步驟,在各節點上【創建鏈】,啟動所有節點,即完成TDPoS共識的環境部署.
- 更新各節點配置vim data/config/xuper.json
- 共識查詢:./xchain-cli tdpos -h
- 這些節點可以部署在同一主機,或者部署到獨立主機(ip)。
如果啟動報錯:error="error to connect to all bootstrap",請檢查bootNodes.不同主機的節點注意ip.
- 部署列表
| /home/app/newChain/x002 | 192.168.0.xxx:37001 | 否 | |
| /home/app/blockChain/x002 | 192.168.0.xxx:37002 | 是 | |
| /home/app/moreChain/x003 | 192.168.0.xxx:37003 | 否 |
查看分支高度,檢測全部節點是否關聯
./xchain-cli status -H 127.0.0.1:37101 ./xchain-cli status -H 127.0.0.1:37102 ./xchain-cli status -H 127.0.0.1:37103 # 啟動 cd /home/app/newChain/x002/;nohup ./xchain & cd /home/app/blockChain/x002/;nohup ./xchain & cd /home/app/moreChain/x003/;nohup ./xchain & # 修改配置文件 vim /home/app/newChain/x002/data/config/xuper.json vim /home/app/blockChain/x002/data/config/xuper.json vim /home/app/moreChain/x003/data/config/xuper.json {"name": "xuper","ledger": {"rootBlockid": "94248ef7a1c1e8b043d4621cc3cc1bf1eb15e74c9c4fdedded0cdee199cd84d2","tipBlockid": "0917a9e90a7916c4bfd9de36485940b9190c06f87313769e9bc2c8cea5d45bc1","trunkHeight": 733},智能合約
合約賬戶
- 自定義權限的鏈上標識符稱為合約賬號,通常分配一個或多個密鑰或多個賬號。不同權重賬戶的多中心化資產管理模式,不同賬戶角色也可以通過共同簽名來更改權限。
- 部署合約以及需要多方共同管理資產時,需要使用合約賬戶;其他應用場景下,普通賬戶與合約賬戶沒有明顯區別。
- 為了部署實名合約,我們需要首先創建一個合約賬號.隨機選擇個節點:/home/app/newChain/x002,這個節點的信息在上文有講。
上述命令output↓
contract response: {"pm": {"rule": 1,"acceptValue": 1.0},"aksWeight": {"dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN": 1.0 // 此ak作為文件data/acl/addrs的內容}}The gas you cousume is: 1000 有可能有這一句 You need add fee ./xchain-cli account query -H 127.0.0.1:37101 # 查詢合約賬號,結果為null,說明沒創建成功在文檔找到解決方案:遇到The gas you cousume is: XXXX, You need add fee 通過加--fee XXXX 參數附加資源,加上--fee 數值后,創建賬號成功。
創建MrCheng,【復習】文章開頭的轉賬。
./xchain-cli account newkeys --output data/MrCheng head data/MrCheng/* && echo # 查看MrCheng的公私鑰,上文也有講 cat data/MrCheng/address && echo # 查詢MrCheng的地址 ./xchain-cli transfer --to k8BAsKrxKhZYLXrh45eb7j7FydzApYUDC --amount 201234 --keys data/keys/ -H 127.0.0.1:37101 # 轉賬到上文獲得的地址,獲得txid 56ccc04bc98db0a4c6c11a4d64117bce3c36f0d205a5b68bf631d06caaa445e5給合約賬號轉賬↓
./xchain-cli transfer --to XC1234560123456789@xuper --amount 201234 # 執行轉賬后,output 交易id b63b62defc70e3f98c538f77360a5d3cdeaeaaca544fafbe04106797f634646f。192.168.4.132交易id===b29e4013948c5f24702e9c36c02548c4ae2162be8cf9cf0c38e18ff278bc0d59–from指定轉賬來源賬號,默認地址是data/keys/address。原始交易多重簽名multisig send時,將該來源地址的簽名寫在Initiator(發起人)的位置。
- 另一種NewAccount方式:調用系統合約的方式,創建合約賬號其實屬于調用系統合約。描述文件如下↓
- 查詢存在的合約賬戶
編譯合約
實名合約
- 服務器上的源碼地址 /home/app/newChain/source/XuperUnion。記錄地址,便于回顧。
注意事項:
問:編譯cpp合約出現 “Post http:///var/run/docker.sock/v1.19/containers/create: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?” 是什么原因?
答:這可能是因為用戶安裝docker后,沒有創建docker用戶組,或者當前運行的系統賬號不在docker用戶組中,可以嘗試下面的命令:
部署合約
- 部署xunion源碼里的合約
- 官方腳本
運行,來了
contract response: initialize identity contract success The gas you cousume is: 148794 You need add fee意思是請支付燃料(代幣),在命令末尾加上--fee 148794
部署合約成功,響應:d225ee6ec6e58bea9e0f1206f3d3af757a29bd274c60202ebf32712f98b525f5(交易id)
調用合約
data/keys賬戶也可以調用合約。
也就是調用合約的函數
調用合約的Json模板,【內容與本例無關】
- 先查詢合約賬戶的acl,然后修改
output:
{"pm": {"rule": 1,"acceptValue": 1},"aksWeight": {"dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN": 1} }- 新增
identity_add.json
報錯:
contract response: register aks to identify contract success The gas you cousume is: 83 The fee you pay is: 83 WriteFile error解決辦法:
創建目錄out.再次執行。
響應日志↓
原始交易
簽名
{"PublicKey": "{\"Curvname\":\"P-256\",\"X\":74695617477160058757747208220371236837474210247114418775262229497812962582435,\"Y\":51348715319124770392993866417088542497927816017012182211244120852620959209571}","Sign": "MEQCIFYFeh2SfDfETkXeuGfMTbSLt1JeiY7v8k5VaMoGMAvOAiAgFBEWN+mMi76Pprn72JQXKPSCzKarP3u69WxEz5nGZw==" }- 刪除
上文的合約是注冊ak,那么現在刪除ak,即不注冊它們了。
identity_del.json
Response:
查詢部署過的合約
./xchain-cli account contracts --account XC1234560123456789@xuper # 根據合約賬號檢索響應↓
[{"contract_name": "identity001","txid": "d225ee6ec6e58bea9e0f1206f3d3af757a29bd274c60202ebf32712f98b525f5","desc": "TWF5YmUgY29tbW9uIHRyYW5zZmVyIHRyYW5zYWN0aW9u"} ]查詢賬號的ACL
./xchain-cli acl query --account XC1234560123456789@xuper # account參數為合約賬號名稱上述命令響應↓
{"pm": {"rule": 1,"acceptValue": 1 // 須達到的閾值},"aksWeight": {"dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN": 1} }查詢余額
./xchain-cli account balance XC1234560123456789@xuper -H 127.0.0.1:37101 # output 258118自己寫合約
GRPC基礎 Protobuf
查看Protobuf教程
撰寫合約-寫代碼 請見智能合約教程
查看智能合約教程
測試環境
測試命令
- 連接互聯網測試機
- 查詢節點余額
./xchain-cli account balance dpzuVdosQrF2kmzumhVeFQZa1aYcdgFpN -H 14.215.179.74:37101 不推薦,建議自己搭建測試環境
操作指導
升級XuperUnion
版本升級時,需要更新為新版本的代碼,并重新編譯,然后將 plugins文件夾, 二進制文件xchain,xchain-cli 全部替換后全部重新啟動即可,注意多節點模式下需要先啟動bootNodes節點。
問答
客戶端發送交易后,怎么查詢是否成功上鏈。通過querytx判斷tx狀態還是有其他事件機制?支持事件通知么?
首先查詢交易所在區塊,然后查詢區塊是否在區塊鏈主干上,如果交易所在區塊在區塊鏈主干上,表明此交易已經生效。事件通知暫不支持,后續有計劃支持部分類型事務執行結果的事件通知。
密碼學中橢圓曲線選擇使用P-256的考慮?
首先,P-256曲線目前依然在密碼學界被廣泛使用。其次,這次開源的是我們的基礎版本,而在xchain的代碼架構下,密碼學相關的模塊是插件化使用的,密碼學crypto模塊是可以獨立研發并集成進開源框架中的。同時,在ECDSA之外,也已開源了多重簽名、EDDSA、環簽名等多種簽名算法。在尚未開源的版本中,通過可變簽名算法,我們已經支持國密/NIST的多條橢圓曲線。最后,這些算法和曲線被支持混合使用,開發者可以自由選擇他們認為安全的曲線和算法來保護自己的數字資產。所以,敬請期待百度xchain后續的密碼學相關開源進展。
以太坊
查看以太坊教程
Cosmos - 待續
文章目錄
- 本系列內容參考圖
- 尊重原創,[轉載請注明出處https://blog.csdn.net/cc007cc009/article/details/102902294](https://blog.csdn.net/cc007cc009/article/details/102902294)
- 前言
- 概念
- Hash
- SHA-256
- 無中心化
- Block
- 創世區塊
- 塊相關
- 節點
- DAG:Directed Acyclic Graph
- p2p廣播
- 超級鏈
- Hyperledger
- Fabric
- 共識
- 智能合約
- 部署合約
- 私鑰
- 以太坊
- EOS
- 提案
- 混盤技術
- 百度超級鏈中的平行鏈
- utxo
- 玩轉開源組件 - 站在巨人的肩膀
- XuperUnion
- 安裝包部署
- 安裝Golang
- g++
- git
- 程序
- Docker部署 - 待續
- 鏈的初始化
- 創世
- 節點
- 賬戶
- 覆蓋原節點賬戶
- 跨節點操作
- 交易地址
- 交易
- 多重簽名
- 區塊鏈自身運行的參數升級
- P2P多節點部署
- 概念
- 具體部署
- 智能合約
- 合約賬戶
- 編譯合約
- 部署合約
- 調用合約
- 查詢部署過的合約
- 查詢賬號的ACL
- 查詢余額
- 自己寫合約
- GRPC基礎 Protobuf
- 撰寫合約-寫代碼 請見智能合約教程
- 測試環境
- 測試命令
- 操作指導
- 升級XuperUnion
- 問答
- 客戶端發送交易后,怎么查詢是否成功上鏈。通過querytx判斷tx狀態還是有其他事件機制?支持事件通知么?
- 密碼學中橢圓曲線選擇使用P-256的考慮?
- 以太坊
- Cosmos - 待續
總結
以上是生活随笔為你收集整理的问道区块链_区块链学习_v1.0.0_持续更新。。。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: heapdump定位内存泄露
- 下一篇: git 强制pull