Lisk 开发去中心化供应链物流应用-基本流程

作者:Mona Bärenfänger [email protected]

动机

区块链可以把供应链和物流行业数据的透明度与响应能力带到一个新的高度,改善商业过程,吸引潜在客户。
另外,应用区块链技术到特定的供应链也会使得终端用户,主要生产商,和其它各方获益,对于货物的运势过程有更好的数据洞察能力。

例如:图中的用户Bill,通过区块链技术他可以知道他所购买的商品是怎么生产出来的。


blockchain-supply-chain.jpg

构想

我们的目标是创建一个简单的去中心化供应链追踪系统。
整个过程中参与各方的行为包括发货,运输和收货。
对于包裹的运输,实现了一个简单的信任系统,使得发件人可以对包裹的承运人设置特定的要求。

包裹本身在运输过程中也是一个活跃的参与者,它会通过感应器在运输过程中发送追踪的信息。
区块链技术的应用,试数据在运输过程中不会被篡改。
成功完成运输后承运人会得到回报,如果因为某个原因失败了会得到惩罚(损失押金)

为了使用过程的方便,一个客户端程序会被提供,所有供应链追踪的相关信息都被可视化展现,用户也可以通过提交定制交易与系统互动。

基本过程

这张图展示了供应链追踪系统的基本工作流过程。

下面是每个步骤的详细描述。


transport-uml.png

初始化包裹账户

在区块链网络注册包裹之前,发件人需要给包裹创建一个新的账户,并把密钥存储在包裹中的物联网(IoT)设备中。

这是一个必要的过程,因为包裹需要给发送到区块链的交易签名,并与网络通讯。

注册包裹

由包裹发件人在区块链上注册包裹。

当创建 RegisterPacketTransaction 交易时, 发件人定义:

  • packetId: 在上一步初始化过程中生成的包裹ID。
  • postage: 运费,付给运输包裹的承运人。
  • security: 当承运人从发件人收到包裹后,一定数量的Token作为押金被锁定。
  • minTrust: 最小信用,运送这个包裹的承运人账户的信用值。
  • recipientId: 包裹收件人的ID,只有收件人的签名可以发送 FinishTransaction , 并结束运输过程。

这个交易将:

  • 把上述数据添加的包裹账户中;
  • 设置包裹的状态 statuspending
  • 把运费从发件人的账户转到包裹的账户;

开始运输

下一步,承运人从发件人这里收到包裹,并开始往收件人运送包裹。
承运人需要签发一条交易 StartTransportTransaction, 证明包裹已经从发件人交给承运商。

当创建 StartTransportTransaction 时,承运商定义:

  • packetID: 发件人所要运输包裹的ID;

这笔交易将会:

  • 根据包裹中设置金额锁定 security 承运人账户中的保证金;除非成功完成运送包裹,承运人不能使用保证金;
  • 增加 carrier 到包裹账户;
  • 把包裹状态 statuspending 改为 ongoing

光感应警报

在包裹的运输过程中,包裹本身通过各种感应器发送追踪信息,检测是否被改动过。

如果包裹篡改被检测到,它将会给区块链网络发送自己签名的警告交易。

这个警告交易 LightAlarmTransaction 将:

  • 把包裹的状态 status 改为 alarm
  • 把当前时间戳 timestamp 加入到 asset.alarms.light 存放在包裹的账户中。

完成运送

当货物送到收件人,承运人交送包裹。收件人需要签署交易 FinishTransportTransaction, 用于验证包裹已经收到。

当发送这笔交易是,收件人需要定义:

  • packetID: 收件人所收到的包裹 ID ;
  • status: 运送包裹的状态有2个选项: 成功 success 或者 失败 fail

这笔交易将:

  • 如果状态成功 status="success"
    ** 发送运费 postage 到承运人账户;
    ** 解锁承运人账户中的保证金 security
    ** 承运人的信用值 trust 增加 +1
    ** 把包裹的状态 status 改为 success
  • 如果状态失败 status="fail"
    ** 发送运费 postage 到发件人账户;
    ** 把押金发 security 转到发件人账户, 清除 承运人账户中的 lockedSecurity
    ** 承运人的信用 trust 减少 -1
    ** 包裹状态 status 设置为 fail

提供的硬件

  • 树莓派,Raspberry Pi Zero W (running a headless Raspbian Buster lite)
  • SD存储卡,16GB class 10 SDCard
  • 光线感应,A generic analog light sensor based on an LDR
  • 跳线,Jumper cables
  • USB线USB -> Micro-USB cable

你可能感兴趣的:(Lisk 开发去中心化供应链物流应用-基本流程)