中国物品编码中心 贾建华 从庆 王天昀
区块链跨链协作平台遵循可扩展、通用和安全的设计理念,通过采用两阶段事务模型实现了跨链事务中的原子性、一致性和可靠性,确保了跨链交易的安全性和可信度,为实现不同链上的资产转移和交互提供了可行性和可靠性保证。
随着全球经济的快速发展,物流运输行业日益重要。传统的物流信息系统存在诸多问题,如信息不透明、不真实、不及时等,这些问题不仅影响了物流运输的效率,还可能导致各种纠纷和风险。区块链技术的出现为解决这些问题提供了新的思路。探究异构区块链跨链技术在物流运输领域的应用研究,可为物流行业的数字化、标准化发展提供支持。
本研究采用了JD Chain 和梧桐链区块链底层平台。
JD Chain 专注于为企业提供高性能、高可用性、高安全性的区块链底层平台,适用于各种行业和场景,包括供应链金融、数字版权保护、电子签章、公益事业等。
梧桐链是基于开放标准自主研发、简单易用、高度可靠的企业级区块链基础设施,可应用于食品溯源、证据保全、知识产权保护、政企公示、互联网金融等多种业务场景。
项目研究小组对当前的跨链技术现状进行研究,并结合跨境物流的实际业务需求,设计满足跨境物流参与方对去中心化的链之间实现跨链协同的需求。
区块链跨链应用问题主要包括:跨链平台不支持梧桐链、合约语言不兼容、区块链节点网络环境限制等。为解决这些问题,研究小组采取措施:
1.基于现有开源平台的组件让跨链路由具备接入Hyperledger Fabric 和FISCO BCOS 的能力。同时根据梧桐链的架构和调用方式,采用统一的编码方式隐藏输入参数的JSON字段格式,并将字段内容交由应用端解码后处理。
2.对代理合约和桥接合约逐个函数进行逻辑调试和测试,同时按照梧桐链自定义合约语法(wLang 语言)进行适配和升级。
3.确保多个路由器部署在同一台服务器上并使用相同CA 证书,同时开放相应的端口以便路由(Router)与相应的区块链进行连接。
基于现有开源区块链跨链协作平台,本研究实现了JD Chain 和梧桐链之间的多维跨链交互,打破了不同区块链网络的壁垒,实现了资产转移、智能合约执行和数据共享等功能:
1.支持不同区块链之间的互操作性,包括资产转移、智能合约执行和数据共享等。
2.提供跨链路由(Router)和跨链适配器(Stub)等组件,以实现不同区块链之间的连接和互通。
3.可视化展示跨链交易的过程和结果,方便用户进行管理和操作。
4.支持账户管理、路由管理、资源管理、交易管理、事务管理和其他管理等功能,方便用户进行区块链资源的监控和管理。
异构区块链技术应用在中欧运输网络上进行了示范应用,发货单位通过异构区块链跨链平台即可查询货品的动态事件与航运轨迹数据。
在跨链应用的主要业务流程中,京东物流将数据(提单号和箱号)录入自有系统后,数据将通过跨链平台接口同步至京东链和梧桐链;中远海运可通过梧桐链获取京东生成的物流数据,并上传航运事件和轨迹数据至自有平台,这些数据也通过跨链平台接口同步至京东链和梧桐链,如图1所示。
图1 跨链应用业务流程图
京东物流和中远海运应用通过跨链SDK 分别向两条链上提交数据,从而实现数据跨链同步,如图2所示(见下页)。
图2 跨链应用系统交互图
异构区块链跨链应用包含三大关键模块,分别是物流追踪任务管理模块、物流追踪追溯模块和跨链管理模块。模块之间相互协作,使区块链技术在物流追踪和管理中发挥极大的作用。
在物流追踪任务管理模块中,京东供应链管理业务人员完成订舱后,将需要进行动态跟踪的提单号和箱号通过京东区块链跨链技术发送给船公司系统。船公司根据提单号和箱号获取船舶的航运时间和行驶轨迹,并使用跨链技术同步给京东物流航运物流追踪系统。
物流追踪追溯模块则是在提单号和箱号发送到船公司后,输入箱号可对其动态事件进行跟踪和查询,方便业务人员和货主实时了解货物的具体位置和运输状态。
跨链管理模块主要包含可视化展示、账户管理、路由管理、资源管理、交易管理、事务管理和其他管理等功能。在账户管理中,用户可通过该模块查看当前UA账户信息,并进行链账户的管理;在路由管理中,可查看当前跨链路由的Peer 路由信息;在资源管理中,可对跨链资源进行查看、部署、调用等操作;在交易管理中,可查看所有跨链资源的每一笔交易详情,也可进行跨链资源调用;在事务管理中,可查看所有跨链事务详情,并可在页面开启、执行或结束事务;在其他功能中,可快速提交Issue、修改账号密码、账号登出网页等。
更新事件
函数名称:updateEvent
调用参数
参数1:箱号;
参数2:事件
示例
sendTransaction payment.fabric-mychannel.jdcc updateEvent CSNU4019751
[{"event_code":"STSP","event_location":"CNWHG","event_time":"2022-12-20 03:26:00","event_timezone":" + 8"}, {"event_code": "GITM", "event_location":"CNWHG", "event_time": "2022-12-21 03: 26: 00","event_timezone": " + 8"}, {"event_code": "LOBD","event_location":"CNWHG","event_time":"2022-12-22 03:26:00","event_timezone":"+8"}]
追加轨迹
函数名称:appendTrack
调用参数
参数1:箱号;
参数2:轨迹
示例
sendTransaction payment.fabric-mychannel.jdcc appendTrack CSNU4019751 {"lat": "4.261233", "lon": "105.056667", "sog": "11.0", "cog": "28.0", "postime":"2022-06-24 00:00:00"}
任务提交
请求方式:HTTP
请求地址:/create
{"message_id": "", "data": [{ "container_no": "",//箱号"bill_no":""//提单号}]}
响应结果:
{"code":0,"message":"success","data":null,"traceId":null,"ext":null}
航运信息查询
请求方式:HTTP
请求地址:/query/{containerNo}
请求参数:containerNo 箱号
响应结果:
{ "code": 1, "message": "success", "data":"{"bl-No": "COSU6349756695", "containerNo": "CSNU4019754""e"traceId":null,"ext":{}}
订单数据结构
{"blNo":"提单号","containerNo":"箱号","events":"事件","tracks":"轨迹"}
轨迹数据结构
{"cog":"航迹向","lat":"纬度","lon":"经度","sog":"速度","postime":"轨迹时间点"}
事件数据结构
{"event_code":"事件编码","event_location":"事件地点","event_time":"事件发生时间","event_timezone":"事件时区"}
区块链跨链协作平台遵循可扩展、通用和安全的设计理念,通过采用两阶段事务模型实现了跨链事务中的原子性、一致性和可靠性,确保了跨链交易的安全性和可信度,为实现不同链上的资产转移和交互提供了可行性和可靠性保证。
未来,随着技术日趋成熟和规范,异构区块链跨链技术有可能演变为支撑跨国供应链应用的网络基础设施,保证国际跨链交易的安全性、可扩展性和可靠性,打破区块链数据孤岛,实现同构链及异构链之间的可信互通,助力国际企业之间可信协作,促进产业生态可信融合。