
库存状态与变更规则
区块链库存记录涉及哪些技术概念,可以从“记录什么、如何修改、依据何在”三个问题理解。库存数量是某一时刻的状态,入库和出库则是改变状态的业务动作。设计记录时,需要明确货品、批次、数量和计量单位,否则相同的数量可能代表不同业务含义。
以太坊智能合约文档将合约描述为具有代码和状态的链上程序,用户通过交易调用其功能。文档中的补货与扣减示例说明,程序可以检查操作权限和剩余数量,再执行状态变化。对应库存业务,合约可表达“谁能补录”“数量是否足够”等规则,但规则需要事先写入代码。

账户、权限与执行条件
账户标识与操作权限是不同概念。系统不仅需要知道哪个账户提交了变更,还要明确它代表哪个业务角色、允许修改哪些记录。例如,入库登记与异常调整可以设置不同的授权条件;这里描述的是可采用的业务设计,并非某个已验证系统的功能。

以太坊文档还涉及执行费用、多签和链外数据接入:链上执行消耗计算资源,多签可要求多个有效签名共同授权,预言机则向合约提供链外信息。这些机制分别解决执行成本、共同审批和外部数据输入问题,不能互相替代。
溯源模型与跨系统理解
W3C的PROV-O用实体、活动和责任主体等概念表达来源关系,支持不同系统交换溯源信息。它是一套基于OWL2的建模规范,本身不要求使用区块链。
应用于库存时,可以把入库单视为实体、验收视为活动、负责组织视为责任主体,并描述单据由何种活动产生、活动使用了哪些凭证。这是将通用模型用于库存的解释示例。其意义在于让数量变化关联业务依据,使不同系统能够理解记录之间的关系。
适用条件与常见问题
适用条件是什么?业务需要先统一货品标识、计量口径和变更规则,并能明确数据提交者及其责任。如果这些基础信息存在歧义,链上执行与溯源关系也难以消除歧义。
链上库存是否等于实物库存?不能直接画等号。合约无法自行观察仓库,外部输入是否可靠仍取决于采集、验收和核对过程。输入渠道把数据送入合约,并不自动证明货物真实存在。
只保存当前数量够不够?若需要解释差异或追查责任,还应关联变更原因、业务凭证和相关主体。状态回答当前记录是多少,溯源关系帮助解释这一记录如何形成。