时间:2023-08-18|浏览:205
通过它,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