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

作者:Mona Bärenfänger mona@lightcurve.io

动机

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

例如:图中的用户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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先要明白的就是,什么是区块链? 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据...
    摩方智享阅读 176评论 0 0
  • 1 货币的演变——从贝壳到比特币 当社会分工产生之后,人类就产生了商品交换的需求。在货币被发明之前,人类是以以物换...
    longlee阅读 7,667评论 1 23
  • 8点起床,跟女友道早安,8.30出门 10点到店跟飞饼师傅见面,沟通合作事宜。 10.30跟老板出门办事,途中跟6...
    阿麦_bdb1阅读 82评论 2 2
  • 总觉着开始了就有希望,但是有谁想过有开始肯定就有结束。 看孩子们玩合龙龙的游戏,睁大眼睛看他们手指头这里点一下,哪...
    英子_e0cc阅读 241评论 2 8