時間:2023-08-18|瀏覽:297
通過它,BigBang核心錢包的區塊和交易數據及時地更新和緩存在lws自有的高速內存數據庫及本地數據庫中。
根據這些數據,它會計算出不同終端設備持有密鑰所對應的公鑰地址的最新utxo集合,并通過與aws的IoTCore的mqtt連接,將這些信息發布(publish)到亞馬遜云端設施上,由其messagebroker向對應的訂閱(subscribe)了這些信息的終端設備轉發。
相應地,終端設備會根據這些與自己相關的utxo列表,在獲取了監控監測采集的數據后打包這些數據到交易中,通過mqtt發布到亞馬遜IoTCore,經由后者的messagebroker向訂閱了這些設備的發送交易主題的lws推送。
lws會校驗這些交易,如果驗證成功,則會通過socketapi向BigBang核心錢包轉發這部分交易,后者收到之后通過p2p網絡接口向BigBang全網廣播這些交易,出塊節點收集這些交易,最終完成其打包區塊上鏈的操作。
lws與device之間的數據交互安全性分兩個方面:
1. lws與awsiotcore之間的傳輸安全:aws提供的默認安全是通過X509證書和TLS1.2客戶端雙向身份驗證和加密進行安全連接。
lws通過亞馬遜AWSIoTDeviceSDK與后者高度可擴展的設備網關建立連接必須提供自身客戶端的設備證書和在亞馬遜云上注冊的密鑰以及iot的根證書,完成身份驗證和鑒權的認證,才能與其后面的消息網關進行通信。
2. 與device通過mqtt建立的業務數據傳輸安全:
每一次device端服務請求時與lws創建的會話session,lws都要從其ApiKeySeed池中隨機選取一對密鑰對,與設備終端請求時附帶上來的公鑰通過橢圓曲線乘法運算計算出ApiKey保證了會話安全。
此外,對于異常的device端請求,lws會作出相應的判斷,根據非法ServiceReq參數提交次數和無效消息頻次,記錄異常設備的{$DEVICE}以確定將其加入到黑名單列表中。
1. PubkeyAddress結構:
- Byte0 - Byte1~Byte32 - Pubkey(ED25519)
2. 創建ApiKeySeed:
利用ED25519生成keypair(Privkeylws, Pubkeylws)。
ApiKeySeed=Pubkeylws
3. 生成ApiKey:
DeviceClientaddress對應的keypair為(Privkeycli, Pubkeycli)。
Pubkeycli對應ED22519曲線上的點Pcli=(Privkeycli)xG。
LWS為創建ApiKeySeed生成的keypair為(Privkeylws,Pubkeylws)。
Pubkeylws對應ED22519曲線上的點Plws=(Privkeylws)xG。
LWS計算:ApiKey=PACK((Privkeylws)xPcli)。
DeviceClient計算:ApiKey=PACK((Privkeycli)xPlws)。
lws使用aws提供的基于長連接、雙向的消息pub/sub消息代理解除與巨量連接的device端數據交互的耦合關系,解決了設備的高并發性和高擴展性。
對于區塊及交易數據的存儲查詢及UTXO數據的更新,lws使用aws的AmazonDynamoDB服務存儲它們KV鍵值對數據。
考慮到BigBang公鏈網絡多支鏈上高并發TPS產生的海量交易數據及打包區塊數據,以及海量的UTXO數據,利用aws的ms級響應延遲的數據存儲服務AmazonDynamoDB,可以為每個業務分支鏈創建一個區塊數據庫和交易數據庫,加速數據的檢索能力。
lws同步主干網絡下行的區塊鏈數據的同時,配合高吞吐量、彈性擴展的AmazonKinesis服務,使用AmazonS3高度擴展(Scalability)、高持久性(Durability)和高可用(Availability)的分布式數據存儲服務緩存巨量的區塊文件到亞馬遜云端,完成區塊實時數據收集和處理,可以為本地物理地址近鄰的其它lws使用,甚至向世界范圍的lws提供檢索服務。
另一方面,lws在與核心錢包失步或數據錯誤時,可以使用S3中的數據快速恢復。
此外,lws使用aws的規則引擎rulesengine將消息轉換并路由到aws服務,后端使用Kinesis服務分流數據到不同的aws服務,或者接駁Lambda服務分流數據。
在區域網絡傳輸不均衡的環境中,也可以使用aws的CloudFront服務提供CDN類似的功能。
使用PB級的AmazonRedshift關系型數據倉庫,可以存儲結構化區塊鏈數據,便于BigBang區塊鏈web瀏覽器、智能設備錢包app、BigBang區塊鏈開發測試人員調試跟蹤程序運行時的數據視圖。
lws使用高并發語言golang開發,程序采用goroutine及channel設施保證了數量龐大的device端同時發送的發送交易到核心錢包主干網絡的請求能夠及時有效地處理,從而實現了海量交易的高速上鏈。
BigBangCore官網:https://www.bigbangcore.com/
BigBangCore技術白皮書:https://www.bigbangcore.com/whitepaper/BigBang_Technical_WhitePaper.pdf