原创 白話區塊鏈技術-區塊鏈工程師大講堂

本次大講堂爲清華大學互聯網產業研究院製作的公益課程,內容分爲八期,每月一期 , 分別從區塊鏈基礎,區塊鏈實踐,區塊鏈底層主網開發,區塊鏈 android/iOS 開發,前端基於 web3taijs 開發實踐,服務端與鏈交互與安全

原创 Android中的JNI

JNI調用簡單梳理一下,留着慢慢完善。 java訪問C     邏輯相對簡單                    javah -jni  com.android.client.Foo生成頭文件  包名+類名  Class文件 nati

原创 以太坊節點發現協議 DEVP2P V5

 節點發現協議v5 歡迎使用節點發現協議v5規範! 請注意,本規範正在進行中,可能會在未事先通知的情況下發生不兼容的更改。 節點發現是在對等網絡中查找其他參與者的系統。該系統可以被任何節點使用,用於任何目的,除了運行網絡協議和存儲有限數量

原创 ETH2.0 Serenity中網絡的詳細介紹

以太坊第四階段Serenity中網絡的概述 特別感謝Hsaio-Wei Wang、Kevin Mai-Hsuan Chia、John Adler的編輯和有價值的反饋。 在分片區塊鏈中網絡是一個難題,我們如何把分片區塊鏈設計和構建成可擴展的

原创 以太坊2.0客戶端(Prysm,lighthouse)安裝體驗

以太坊2.0最新的測試網裏面,這兩個客戶端的受衆最多,下面是我的一些安裝和代碼體驗。 Lighthouse安裝 首先體驗了Lighthouse的安裝,Lighthouse是基於Rust開發的,可查看下面官方提供的文檔 Ligh

原创 泰嶽鏈使用rust-libp2p實現節點同步(一)

去年年初,很多人都說rust開發區塊鏈如何好,然後就學習了一下。最先接觸到的是substrate裏面的網絡模塊,當時對libp2p不是很瞭解,rust語法也一直半解,以致只能看懂應用消息的轉發流程,如何發到對方節點就不是很清楚,

原创 泰嶽鏈使用rust-libp2p實現節點同步(二)

在閱讀本篇之前, 請先查看 泰嶽鏈使用rust-libp2p實現節點同步(一) 新區塊緩存 同步的啓動策略一般是當本地高度和對方節點上鍊高度相差一定高度常量,纔會啓動。 想象一下,握手時對方高度是100,當你同步完這些區塊時,

原创 Rust基本語法整理(二)

整理來自Rust中文 . 通用集合類型,到構建命令行程序.已經看了第二遍,知識點還是容易忘記,整理記錄一下,方便查閱. Rust中文 vector 是用泛型實現的,實例化時必須制定類型, 一個類型註解,如果在編寫程序時不能確

原创 Rust基本語法整理一

整理來自Rust中文前幾章節,到包、Crates與模塊.已經看了第二遍,知識點還是容易忘記,整理記錄一下,方便查閱. Rust中文 x.0;元祖 let a: [i32; 5] = [1, 2, 3, 4, 5]; fn關鍵字

原创 以太坊源碼解析-(1) 公鑰私鑰地址字符串公鑰推導

以太坊中私鑰和HASH都爲32位,公鑰爲65位其中第一位是壓縮字節0x04,壓縮公鑰爲33字節,地址是是公鑰的後64位hash後取後20個字節​作爲地址。簽名數據爲65位,R,S各32位,65位爲0和1.​ 生成私鑰 //生成私鑰

原创 基於泰嶽鏈實現Tendermint POS的細節 (一):選舉

對於公有區塊鏈來說,由於委員會成員會更迭,自然會有成員的退出和更新,本文介紹的是一種POS的實現,委員會之間的通信使用Tendermint,普通節點使用devp2p會存在兩個p2p連接。 選舉 成員的產生可以通過隨機數生成如

原创 基於泰嶽鏈實現Tendermint POS的細節 (二):換屆

對於公有區塊鏈來說,由於委員會成員會更迭,自然會有成員的退出和更新,本文介紹的是一種POS的實現,委員會之間的通信使用Tendermint,普通節點使用devp2p會存在兩個p2p連接。 這是基於上一篇基於以太坊實現Tende

原创 p2p節點連接中的祕鑰交換RLPX (代碼篇)

不瞭解RLPX的可以查看上篇博客。 p2p節點連接中的祕鑰交換RLPX (理論篇) Enode enode://6ee7f15fbe4a60585a54722b11727652f3ac54ce7a9a4c5977fd55420

原创 p2p節點連接中的祕鑰交換RLPX (理論篇)

p2p祕鑰交換中使用了ECDHE,下面我將介紹一些概念,並配上代碼實現。 Diffie-Hellman`祕鑰交換協議 迪菲-赫爾曼密鑰交換(英語:Diffie–Hellman key exchange,縮寫爲D-H) 是一種安

原创 國密算法合約EVM debug之旅

項目中用到了國密算法,hash爲國密方法,用solc編譯器編譯合約代碼,調用合約方法執行失敗,找了好長時間發現了原因。 首先部署合約是沒問題的,合約執行方法的時候不成功,後面發現是交易input中的add方法簽名和用以太坊so