CN111475521A - 基于区块链的货物管理方法及装置和电子设备 - Google Patents
基于区块链的货物管理方法及装置和电子设备 Download PDFInfo
- Publication number
- CN111475521A CN111475521A CN202010585453.0A CN202010585453A CN111475521A CN 111475521 A CN111475521 A CN 111475521A CN 202010585453 A CN202010585453 A CN 202010585453A CN 111475521 A CN111475521 A CN 111475521A
- Authority
- CN
- China
- Prior art keywords
- goods
- contract
- transaction
- intelligent
- identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 23
- 238000012546 transfer Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000270295 Serpentes Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于区块链的货物管理方法及装置和电子设备。应用于区块链节点设备,区块链部署了用于对货物数据进行管理的货物智能合约。该方法包括:接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,盘点交易包括从电子标签读取到的货物标识、货物数量和电子标签标识;响应于盘点交易,调用发布在区块链的货物智能合约中声明的校验逻辑,校验与仓库节点对应的仓库是否为货物智能合约中记录的仓库;以及货物标识和电子标签标识对应关系是否为货物智能合约中记录的对应关系;如果是,进一步调用货物智能合约中声明的货物管理逻辑,将货物数量记录到货物智能合约维护的最新货物数量。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的货物管理方法及装置和电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
根据本说明书的第一方面,提供一种基于区块链的货物管理方法。所述方法应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约。所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑;所述方法包括:
接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
如果是,进一步调用与所述合约地址对应的货物智能合约中声明的所述货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
根据本说明书的第二方面,提供一种基于区块链的货物管理装置,所述装置应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约;所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑;所述装置包括:
盘点交易单元,接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
交易共识单元,将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
盘点响应单元,当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
盘点管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
根据本说明书的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现前述任一项所述的基于区块链的货物管理方法。
由上述描述可知,一方面,为上链存证的货物部署对应的用于进行货物数据管理的货物智能合约。另一方面,为线下的仓库中存储的货物分配唯一对应的线下的电子标签;并且该电子标签中写有货物的货物数据。如此,通过线下线上结合的方式,在仓库中通过扫描货物的电子标签以快速获取货物盘点的货物数据,并将盘点到的货物数据上链存证,由货物标识对应的货物智能合约更新该货物的最新货物数据。如此,即利用了线下电子标签快速实现货物盘点,又利用区块链不可篡改的特性,将每次盘点的货物数据存证在区块链上。如此不仅可以供货物的提供方、接收方或者其它的管理方随时了解货物的存储状况;还可以当货物在仓库存储中出现异常时(如损坏或丢失),通过区块链存证的数据追溯到异常出现的节点,以定位最有可能的责任人,以挽回货物损失。
附图说明
图1是一示例性实施例提供的创建智能合约的示意图;
图2是一示例性实施例提供的调用智能合约的示意图;
图3是一示例性实施例提供的创建和调用智能合约的流程图;
图4是一示例性实施例提供的一种基于区块链的货物管理方法的流程图;
图5是一示例性实施例提供的基于电子标签盘点货物的示意图;
图6是一示例性实施例提供的一种电子设备的结构示意图;
图7是一示例性实施例提供的一种基于区块链的货物管理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实现方式并不代表与本说明书一个或多个实施例相一致的所有实现方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT(MerklePatricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。其中,对于外部账户而言,以上示出的Code字段和Storage字段的字段值均为空值。
对于大多数区块链模型,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三棵MPT树,分别是MPT状态树、MPT交易树和MPT收据树。其中,除了以上三棵MPT树以外,实际上还存在一棵基于合约账户的存储内容构建的Storage树。
MPT状态树,是由区块链中所有账户的账户状态(state)数据组织成的MPT树;MPT交易树,是由区块链中的交易(transaction)数据组织成的MPT树;MPT收据树,是区块中的交易在执行完毕后生成的与每笔交易对应的交易(receipt)收据组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,最终都会被添加至对应区块的区块头中。
其中,MPT交易树和MPT收据树均与区块相对应,即每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
对于组织成的MPT交易树、MPT收据树和MPT状态树,最终都会在采用多级数据存储结构的Key-Value型数据库(比如,LevelDB)中进行存储。
而采用多级数据存储结构的上述数据库,通常采用多级数据存储的结构,可以被划分为n级数据存储;例如,各级数据存储可以依次设为L0,L1,L2,L3....L(n-1);对于上述数据库中的各级数据存储而言,等级编号越小通常级别越高;例如,L0存储的是最新的若干区块的数据,L1存储的是次新的若干区块的数据,以此类推。
其中,各级数据存储对应的存储介质的读写性能,通常也可以存在性能差异;例如,级别高(即等级编号较小的)的数据存储对应的存储介质的读写性能,可以高于级别低的数据存储对应的存储介质的读写性能。在实际应用中,级别高的数据存储,可以使用存储成本较高,存储性能较优的存储介质;而级别低的数据存储,可以使用单位成本低,且容量较大的存储介质。
在实际应用中,随着区块链的区块号的增长(也称之为区块高度),在数据库中存储的数据,会包含很多历史数据;而且,区块号越小的区块中的数据越久远,越不重要。因此,为了降低整体的存储成本,通常可以对不同区块高度的数据进行“区别对待”;例如,可以将区块号较小的区块中的数据,存储至成本较低的存储介质上;而将区块号较大的区块中的数据,存储在成本较高的存储介质上。
需要说明的是,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的相关账户(可以是外部账户也可以是合约账户)的账户状态,通常也会随之发生变化;
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。
而节点设备在区块链产生的最新区块中的交易执行完毕后,由于当前区块链中的账户状态发生了变化,因此节点设备需要根据区块链中所有账户当前的账户状态数据,来构建MPT状态树,用于维护区块链中所有账户的最新状态。
也即,每当区块链中产生一个最新区块,并且该最新区块中的交易执行完毕后,导致区块链中的账户状态发生了变化,节点设备都需要基于区块链中所有账户最新的账户状态数据,重新构建一棵MPT状态树。换句话说,区块链中每一个区块,都有一个与之对应的MPT状态树;该MPT状态树,维护了在该区块中的交易在执行完毕后,区块链中所有账户最新的账户状态。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。如图1所示,Bob将一笔包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中1中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图2中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点(例如图2中的节点1)查看合约账户的账户状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
区块链上部署的智能合约,通常只能引用区块链上存储的数据内容;而在实际应用中,对基于智能合约技术实现的一些复杂的业务场景,智能合约可能还需要引用一些链外的数据实体上的外部数据。
在这种场景下,区块链上部署的智能合约,可以通过Oracle预言机,来引用链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互。其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心,等等。
需要说明的是,跨链中继用于连接两个区块链,而Oracle预言机用于连接区块链与链外的数据实体,实现区块链与真实世界的数据交互。
在实际应用中,在为区块链上的智能合约部署预言机时,可以先在区块链上部署一个与预言机对应的预言机智能合约;其中,该预言机智能合约用于维护预言机发给区块链上的智能合约的外部数据;例如,预言机发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机的私钥进行签名后,发送给上述预言机智能合约;例如,在时间时,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在另一种实现方式中,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机进行交互,并由上述预言机将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(Event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果;
例如,以以太坊为例,交易日志最终会作为调用该智能合约的那笔交易笔交易的收据(receipt)的一部分内容,存储在以上描述的MPT收据树中。而与智能合约进行交互的链外实体,可以监听节点设备的存储空间中存储的MPT收据树上的交易收据,并从监听到的交易收据中,来获取智能合约生成的事件。
在介绍完上述区块链技术,下面介绍下本说明书提供的基于区块链的货物管理方法。
请参见图4,图4是一示例性实施例提供的一种基于区块链的货物管理方法的流程图。所述方法应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约,所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑,所述方法具体可以包括以下步骤:
步骤402:接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
步骤404:将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
步骤406:当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
步骤408:如果是,进一步调用与所述合约地址对应的货物智能合约中声明的所述货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
本说明书旨在提出一种基于区块链的货物管理方法,通过线下线上结合的方式,在仓库中通过扫描货物的电子标签以快速获取货物盘点的货物数据,并将盘点到的货物数据上链存证,由货物标识对应的货物智能合约更新该货物的最新货物数据。
在实际应用中,一批货物由货物的提供方向货物的接收方转移的过程中,需要先将货物存储到指定的仓库中。然而,货物存储到仓库中后,不管是货物的提供方还是后为接收方都缺少监管仓库中货物真实情况的手段。并且,如果货物在仓库中出现异常例如损坏、丢失等情况时,无法快速定位到仓储中哪个环节、哪个责任人,从而出现相互扯皮,无法快速赔偿。
例如,在期货交易场景中,期货卖方(即货物的提供方)的货物一般都是存放在期货交易所会指定交割仓库。并且仓库会按照期货交易所规定的程序签发符合合约规定质量的实物提货凭证,这个实物提货凭证称为仓单。仓单作为货物入库的凭证可以作为货物的货物标识。
当期货卖方急需现金流时,通常会将仓单抵押或者质押给贷款机构(即货物的接收方),以在约定的期限内还款为条件,货物贷款机构提供的贷款。所述贷款机构包括银行但不限于银行。一般期货卖方和贷款机构之间需要签署具有法律效应的贷款合同,该贷款合同中会约定还款时间、贷款利息等相关内容。如果在约定的还款时间内期货卖方按时还款,那么仓单对应的货物的所有权依然为期货卖方;如果在约定的还款时间内期货卖方未按时还款,那么仓单对应的所有权就会变更为合同约定的贷款机构或第三方。这些货物存储在仓库时,缺少有效的监管手段。此外,由于现有仓单抵押的流程并不规范,可能存在期货买家使用同一份仓单向多个贷款机构说明书贷款并成功贷出款项,这无疑存在非常高的风险。
为此,在货物的提供方有一批转移给货物的接收方的货物需要存储到仓库时,该货物的提供方可以在区块链上创建一个用于对货物管理的货物智能合约。该货物智能合约中的合约代码对应的代码逻辑可以配置有针对仓库的货物入库逻辑、货物盘点逻辑、针对货物的接收方的货物交接逻辑、违约处理逻辑等。这些逻辑可以是货物的提供方、仓库方、货物的接收方等预先协商后确定的。这样,区块链就可以基于该货物智能合约自动执行各方的货物管理交易。
以下首先介绍货物的提供方在区块链上为货物创建货物智能合约的过程:
货物的提供方可以使用安装有本说明书区块链系统对应的客户端软件接入区块链,并上传需要存储到仓库的货物的相关信息。所述客户端软件可以视为区块链网络中的一个节点设备。货物的提供方上传的货物的相关信息可以以登记交易的形式上链存证。也就是说,货物的提供方发起的登记交易中包含有货物的相关信息和创建智能合约的合约地址。
在区块链中节点设备接收到货物的提供方节点发起的针对货物的登记交易后,可以与其它节点设备一起对该登记交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这登记交易与其它交易一起打包进区块,在区块链中进行持久化存证。对于打包进区块的上述登记交易,区块链中的节点设备均可以执行上述登记交易,由本地的EVM中运行该登记交易所调用的与所述合约地址对应的创建智能合约中声明的合约创建逻辑对应的执行代码,执行创建与所述货物标识对应的用于进行货物管理的货物智能合约,以及将所述登记交易包含的货物的相关信息写入该货物智能合约中。
其中,所述货物的相关信息包括所述货物的货物标识和货物的提供方指定的存储货物的仓库以及接收货物的接收方。所述货物与所述货物智能合约的对应关系通过写入的货物标识确定。如前所述该货物标识可以是指货物的实物提货凭证。
通过上述过程就实现了为货物创建对应的货物智能合约。本说明书后续针对货物管理的交易都可以通过区块链上的该货物智能合约自动执行。
以下介绍仓库接收货物的提供方的货物并通过区块链存证货物入库的过程:
仓库方在货物的提供方的货物到达仓库时,需要对待入库货物进行入库盘点得到入库盘点数据和所述货物智能合约的合约地址。所述入库盘点数据例如包括盘点的货物数量、货物标识、电子标签标识等数据。
在本说明书中,仓库方面可以为待入库货物分配线下的电子标签。所述电子标签可以是使用小型天线的非接触式IC卡(Integrated Circuit Card,集成电路卡)。具体地,所述非接触式可以是由短距离无线通信技术实现。例如,电子标签可以包括RFID(RadioFrequency Identification,射频识别)标签、NFC(Near Field Communication,近场通讯)标签。不管是RFID标签还是NFC标签都可以具备读写以及加密通信的能力。
其中,所述电子标签中可以被写入有货物标识、货物数量和电子标签标识等信息。所述货物标识和货物数量都是上述入库盘时确定的货物信息,所述电子标签标识是每个电子标签对应的唯一识别信息。电子标签与电子标签标识是一一对应的,通常,电子标签标识是电子标签出场时设置的。写入数据后的电子标签可以用于仓库周期性盘点货物。
仓库方可以使用安装有本说明书区块链系统对应的客户端软件接入区块链,所述客户端软件可以视为区块链网络中的一个节点设备,即仓库可以对应区块链的仓库节点。仓库节点针对待入库货物的入库请求可以以入库交易的形式上链存证。值得一提的是,本说明书中的仓库节点发起的入库交易中包括所述待入库货物的货物标识、货物数量以及为所述待入库货物分配的线下的电子标签标识。
在区块链中节点设备接收到仓库节点针对待入库货物发起的入库交易后,可以与其它节点设备一起对该入库交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这入库交易与其它交易一起打包进区块,在区块链中进行持久化存证。对于打包进区块的上述入库交易,区块链中的节点设备均可以执行上述入库交易,本地的EVM中运行该入库交易所调用的与所述合约地址对应的货物智能合约中声明的校验逻辑对应的执行代码,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
如果是,进一步调用所述合约地址对应的货物智能合约中声明的入库逻辑,将所述货物数量、所述电子标签标识与所述货物标识的绑定关系记录到所述货物智能合约中。
通过上述过程就实现了货物入库时存证货物数量,以及货物和电子标签绑定关系。
以下继续介绍仓库对入库存储的货物进行周期性盘点并通过区块链存证盘点数据的过程:
货物的提供方通常会向仓库方支付货物管理费。仓库方不仅是存储货物,还需要周期性对货物进行盘点,以确定货物数量是否与入库时一致。
如前所示,货物入库时会分配电子标签,并且电子标签中被写入有货物数量、货物标识和电子标签标识。
因此,在需要对货物进行盘点时,可以通过扫描电子标签快速读取货物数据。
如图5所示的基于电子标签盘点货物的示意图。图5中,每个货物502都配置有线下的电子标签501。这些电子标签501与货物502绑定,具有一一对应的关系。所述电子标签501具备防拆功能,即电子标签501安装到货物502外包装上后无法拆卸,这样就可以保证货物502的完整性。另外,电子标签501自带有加密功能,电子标签501的读写的数据都是加密的,只有通过与电子标签501对应的且注册的合法的电子标签扫描器503才可以解密加密数据,得到明文数据。一般的,电子标签扫描器503的扫描范围是固定的;因此,可以在仓库内多设置一些电子标签扫描器503,以覆盖仓库内所有存储的货物502。仓库可以设置周期性启动这些电子标签扫描器503,扫描仓库内货物502的电子标签501。如果扫描到某个电子标签501,那就说明该电子标签501对应的货物502依然存储到仓库,且货物502完好(外包装没有被拆除)。值得一提的是,图5中示出的电子标签501、货物502和电子标签扫描器503的样式仅是示例,并不是对具体的外观形式进行的限定。例如,图5中的电子标签扫描器503是一种便携式人工手持使用的设备,在实际应用时因为本说明书适用的是仓库场景,因此通常需要部署自动化的,可以快速扫描较大空间范围的大型电子标签扫描器。
通过扫描电子标签并读取电子标签中存储的货物数据,快速盘点出每个货物标识的货物数量。由于盘点过程是基于电子标签扫描器自动进行的,无需工人进行盘点,盘点效率高。
仓库节点在线下扫描入库货物的电子标签后可以获取到电子标签中记录的货物数据,然后可以以盘点交易的形式将货物数据上链存证。值得一提的是,本说明书中的仓库节点发起的盘点交易中包括从所述电子标签读取到的货物标识、货物数量和电子标签标识以及货物智能合约的合约地址。
在区块链中节点设备接收到仓库节点发起的盘点交易后,可以与其它节点设备一起对该盘点交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这盘点交易与其它交易一起打包进区块,在区块链中进行持久化存证。对于打包进区块的上述盘点交易,区块链中的节点设备均可以执行上述盘点交易,本地的EVM中运行该盘点交易所调用的与所述合约地址对应的货物智能合约中声明的校验逻辑对应的执行代码,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
如果是,进一步调用所述合约地址对应的货物智能合约中声明的货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
在实际应用中,货物的提供方通常会向仓库方支付货物管理费。仓库方不仅是存储货物,还需要周期性对货物进行盘点,以确定货物数量是否与入库时一致。
在一实施例中,为了保证仓库按时盘点,可以在货物智能合约中的校验逻辑中设置:判断当前盘点交易距离上一次盘点交易之间的时间间隔是否超过阈值;如果是,则从所述仓库节点的账户中扣除预设费用给所述提供方。
通过设置一定的惩罚机制督促仓库方按时对货物进行盘点,并将盘点数据上链存证;从而为货物的提供方和货物的接收方监督货物安全提供保障。
如果某次的盘点交易中的货物数量与上一次盘点交易的货物数量不一致,并且仓库并为记载货物出库记录的话,则说明在上一次盘点时间到这次盘点之间货物存在损失,可以将这段时间的监控视频调取进行排查;也可以定位这段时间的管理人员作为责任人。
在一实施例中,为了保障仓库的权益,每次盘点交易时,还可以在货物智能合约中的校验逻辑中设置:判断所述货物的提供方预缴的盘点费用是否充足;如果否,说明盘点费用耗尽,则仓库不会继续存储货物,有权处置货物,为此可以进一步调用所述合约地址对应的货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为仓库。这样,仓库将货物变现后收取货物的提供方所欠费用,并多余费用返回给货物的提供方。
在另一实施例中,如果该货物的所有权是属于货物的接收方。那么该交接逻辑,可以将所述货物的所有权状态变更为货物的接收方和仓库,并按预定比例分割货物。
基于上述实施例,通过线下线上结合的方式,在仓库中通过扫描货物的电子标签以快速获取货物盘点的货物数据,并将盘点到的货物数据上链存证,由货物标识对应的货物智能合约更新该货物的最新货物数据。如此,即利用了线下电子标签快速实现货物盘点,又利用区块链不可篡改的特性,将每次盘点的货物数据存证在区块链上。
以下继续介绍货物的接收方通过区块链接收货物的过程:
作为货物的接收方来说,其可以通过区块链查询货物入库情况,在确定入库货物的货物数量符合要求后可以发起的交接交易。
货物的接收方可以使用安装有本说明书区块链系统对应的客户端软件接入区块链,所述客户端软件可以视为区块链网络中的一个节点设备。货物的接收方节点针对货物的交接请求可以以交接交易的形式上链存证。所述交接交易包括货物标识和所述货物智能合约的合约地址。
在区块链中节点设备接收到货物的接收方节点在查询区块链中货物的货物数量符合要求后发起的交接交易后,可以与其它节点设备一起对该交接交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这交接交易与其它交易一起打包进区块,在区块链中进行持久化存证。对于打包进区块的上述交接交易,区块链中的节点设备均可以执行上述交接交易,本地的EVM中运行该交接交易所调用的与所述合约地址对应的货物智能合约中声明的校验逻辑对应的执行代码,校验与所述接收方节点对应的接收方是否为所述货物智能合约中记录的接收方;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
如果是,进一步调用所述合约地址对应的货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为接收方;以使接收方节点线下完成与提供方之间的转账交易。
以前述交易场景中,期货卖家以货物为抵押物向贷款机构进行贷款为例进行说明。期货卖家创建货物智能合约时除了指定仓库外,还指定了贷款机构。通常,期货卖家与贷款机构在线下协商后签署贷款协议或合同。并指定期货卖家在一定时间内将抵押的货物存放到指定仓库。贷款机构在查询到区块链上抵押货物入库记录后,说明货物已经存储在仓库,并且在货物数量与贷款合同一致时,说明期货卖家已经履行完抵押物入库;按照合同贷款机构需要向其放贷。为此,贷款机构可以向区块链发起接收交易,以调用货物智能合约校验,接收交易中的货物标识、贷款机构是否是本货物智能合约管理的货物、贷款机构。如果是,将本货物智能合约管理的货物的所有权变更为已质押;并广播到区块链中。此时,说明期货卖家存储在仓库中的货物是抵押状态。如此,其它贷款机构通过查询货物是否处于抵押状态就可以获取货物是否已经被抵押;从而避免同一货物多次抵押的情况。
以下进一步介绍货物的提供方违约的处理过程:
如果货物的提供方与货物的接收方签署了贷款协议或合同并生效,货物的接收方向货物的提供方放贷,货物的提供方应当依据合同按时还款。
如果货物的提供方按时还款,那么货物的接收方可以向区块链发起交易,将货物智能合约中货物的所有权状态变更为货物的提供方。
如果货物的提供方未按时还款,那么货物的接收方可以向区块链发起违约处理交易,调用发布在所述区块链的所述货物智能合约中声明的校验逻辑,校验与货物标识、货物的接收方是否为货物智能合约管理的货物。如果是,进一步调用所述合约地址对应的货物智能合约中声明的违约处理逻辑,将所述货物的所有权状态变更为货物的接收方。这样货物的接收方可以自行处理货物,以补偿未还贷款。
或者,该违约处理逻辑可以,将所述货物的所有权状态变更为预设第三方。该预设第三方可以是货物的提供方与货物的接收方约定的,在货物的提供方无法还款时由第三方接收货物并向货物的接收方偿还未还贷款。
通过上述实施例,在货物智能合约中写入货物的提供方违约处理逻辑,以在货物的提供方违约时,自动变更货物的提供方存储在仓库中货物的所有权;以偿还货物的提供方未还贷款。
综上所述,本说明书提供的基于区块链的货物管理方案,一方面的,通过电子标签将仓库货物进行数字化管理。另一方面的,然后通过线下(电子标签)结合线上(区块链)方式对仓库货物进行可信盘点。再一方面,通过货物智能合约实现货物所有权的可信流转。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的货物管理装置的实施例。
本说明书的基于区块链的分级存储装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,如图6所示,为本说明书的基于区块链的货物管理装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图7是本说明书一示例性实施例示出的一种基于区块链的货物管理装置的框图。
请参考图7,所述基于区块链的货物管理装置可以应用在前述图6所示的电子设备中,所述装置应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约;所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑;所述装置包括:
盘点交易单元602,接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
交易共识单元604,将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
盘点响应单元606,当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
盘点管理单元608,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
可选的,所述装置还包括:
登记交易单元,接收货物的提供方节点发起的针对货物的登记交易;其中,所述登记交易包括所述货物的货物标识和货物的提供方指定的存储货物的仓库以及接收货物的接收方和创建智能合约的合约地址;
所述交易共识单元604还用于,将所述登记交易发送给所述区块链中的其他节点设备,对所述登记交易进行共识处理;
登记响应单元,当所述登记交易共识通过后,响应于所述登记交易,调用与所述合约地址对应的创建智能合约中声明的合约创建逻辑,创建与所述货物标识对应的用于进行货物管理的货物智能合约;其中,所述货物与所述货物智能合约的对应关系通过写入所述货物智能合约中的货物标识确定,并且所述货物智能合约中还写入有所述登记交易中的仓库和接收方。
可选的,所述装置还包括:
入库交易单元,接收仓库节点针对待入库货物发起的入库交易;其中,所述入库交易包括所述待入库货物的货物标识、货物数量以及为所述待入库货物分配的线下的电子标签标识;其中,所述电子标签中被写入有货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
所述交易共识单元604还用于,将所述入库交易发送给所述区块链中的其他节点设备,对所述入库交易进行共识处理;
入库响应单元,当所述入库交易共识通过后,响应于所述入库交易,调用与所述合约地址对应的货物智能合约中声明的校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
入库管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的入库逻辑,将所述货物数量、所述电子标签标识与所述货物标识的绑定关系记录到所述货物智能合约中。
可选的,所述装置还包括:
交接交易单元,接收货物的接收方节点在查询区块链中货物的货物数量符合要求后发起的交接交易;其中,所述交接交易包括货物标识和所述货物智能合约的合约地址;
所述交易共识单元604还用于,将所述交接交易发送给所述区块链中的其他节点设备,对所述交接交易进行共识处理;
交接响应单元,当所述交接交易共识通过后,响应于所述交接交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述接收方节点对应的接收方是否为所述货物智能合约中记录的接收方;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
交接管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为接收方;以使接收方节点线下完成与提供方之间的转账交易。
可选的,所述校验逻辑还包括:
判断当前盘点交易距离上一次盘点交易之间的时间间隔是否超过阈值;如果是,则从所述仓库节点的账户中扣除预设费用给所述提供方。
可选的,所述校验逻辑还包括:
判断所述货物的提供方预缴的盘点费用是否充足;如果否,则进一步调用所述货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为仓库。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实现方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (13)
1.一种基于区块链的货物管理方法,所述方法应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约;所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑;所述方法包括:
接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
如果是,进一步调用与所述合约地址对应的货物智能合约中声明的所述货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
2.根据权利要求1所述的方法,所述方法还包括:
接收货物的提供方节点发起的针对货物的登记交易;其中,所述登记交易包括所述货物的货物标识和货物的提供方指定的存储货物的仓库以及接收货物的接收方和创建智能合约的合约地址;
将所述登记交易发送给所述区块链中的其他节点设备,对所述登记交易进行共识处理;
当所述登记交易共识通过后,响应于所述登记交易,调用与所述合约地址对应的创建智能合约中声明的合约创建逻辑,创建与所述货物标识对应的用于进行货物管理的货物智能合约;其中,所述货物与所述货物智能合约的对应关系通过写入所述货物智能合约中的货物标识确定,并且所述货物智能合约中还写入有所述登记交易中的仓库和接收方。
3.根据权利要求2所述的方法,所述方法还包括:
接收仓库节点针对待入库货物发起的入库交易;其中,所述入库交易包括所述待入库货物的货物标识、货物数量以及为所述待入库货物分配的线下的电子标签标识;其中,所述电子标签中被写入有货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
将所述入库交易发送给所述区块链中的其他节点设备,对所述入库交易进行共识处理;
当所述入库交易共识通过后,响应于所述入库交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
如果是,进一步调用与所述合约地址对应的货物智能合约中声明的入库逻辑,将所述货物数量、所述电子标签标识与所述货物标识的绑定关系记录到所述货物智能合约中。
4.根据权利要求2所述的方法,所述方法还包括:
接收货物的接收方节点在查询区块链中货物的货物数量符合要求后发起的交接交易;其中,所述交接交易包括货物标识和所述货物智能合约的合约地址;
将所述交接交易发送给所述区块链中的其他节点设备,对所述交接交易进行共识处理;
当所述交接交易共识通过后,响应于所述交接交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述接收方节点对应的接收方是否为所述货物智能合约中记录的接收方;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
如果是,进一步调用与所述合约地址对应的货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为接收方;以使接收方节点线下完成与提供方之间的转账交易。
5.根据权利要求1所述的方法,所述校验逻辑还包括:
判断当前盘点交易距离上一次盘点交易之间的时间间隔是否超过阈值;
如果是,则从所述仓库节点的账户中扣除预设费用给提供方。
6.根据权利要求1所述的方法,所述校验逻辑还包括:
判断所述货物的提供方预缴的盘点费用是否充足;
如果否,则进一步调用所述货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为仓库。
7.一种基于区块链的货物管理装置,所述装置应用于区块链中的节点设备,所述区块链部署了用于对货物数据进行管理的货物智能合约;所述货物智能合约中的合约代码对应的代码逻辑包括针对所述货物数据的校验逻辑和货物管理逻辑;所述装置包括:
盘点交易单元,接收仓库节点线下扫描入库货物的电子标签后发起的盘点交易;其中,所述盘点交易包括从所述电子标签读取到的货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
交易共识单元,将所述盘点交易发送给所述区块链中的其他节点设备,对所述盘点交易进行共识处理;
盘点响应单元,当所述盘点交易共识通过后,响应于所述盘点交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识和电子标签标识对应关系是否为所述货物智能合约中记录的对应关系;
盘点管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的货物管理逻辑,将所述货物数量记录到所述货物智能合约维护的最新货物数量。
8.根据权利要求7所述的装置,所述装置还包括:
登记交易单元,接收货物的提供方节点发起的针对货物的登记交易;其中,所述登记交易包括所述货物的货物标识和货物的提供方指定的存储货物的仓库以及接收货物的接收方和创建智能合约的合约地址;
所述交易共识单元还用于,将所述登记交易发送给所述区块链中的其他节点设备,对所述登记交易进行共识处理;
登记响应单元,当所述登记交易共识通过后,响应于所述登记交易,调用与所述合约地址对应的创建智能合约中声明的合约创建逻辑,创建与所述货物标识对应的用于进行货物管理的货物智能合约;其中,所述货物与所述货物智能合约的对应关系通过写入所述货物智能合约中的货物标识确定,并且所述货物智能合约中还写入有所述登记交易中的仓库和接收方。
9.根据权利要求8所述的装置,所述装置还包括:
入库交易单元,接收仓库节点针对待入库货物发起的入库交易;其中,所述入库交易包括所述待入库货物的货物标识、货物数量以及为所述待入库货物分配的线下的电子标签标识;其中,所述电子标签中被写入有货物标识、货物数量和电子标签标识和所述货物智能合约的合约地址;
所述交易共识单元还用于,将所述入库交易发送给所述区块链中的其他节点设备,对所述入库交易进行共识处理;
入库响应单元,当所述入库交易共识通过后,响应于所述入库交易,调用与所述合约地址对应的货物智能合约中声明的校验逻辑,校验与所述仓库节点对应的仓库是否为所述货物智能合约中记录的仓库;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
入库管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的入库逻辑,将所述货物数量、所述电子标签标识与所述货物标识的绑定关系记录到所述货物智能合约中。
10.根据权利要求8所述的装置,所述装置还包括:
交接交易单元,接收货物的接收方节点在查询区块链中货物的货物数量符合要求后发起的交接交易;其中,所述交接交易包括货物标识和所述货物智能合约的合约地址;
所述交易共识单元还用于,将所述交接交易发送给所述区块链中的其他节点设备,对所述交接交易进行共识处理;
交接响应单元,当所述交接交易共识通过后,响应于所述交接交易,调用与所述合约地址对应的货物智能合约中声明的所述校验逻辑,校验与所述接收方节点对应的接收方是否为所述货物智能合约中记录的接收方;以及所述货物标识是否为所述货物智能合约中记录的货物标识;
交接管理单元,如果是,进一步调用与所述合约地址对应的货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为接收方;以使接收方节点线下完成与提供方之间的转账交易。
11.根据权利要求7所述的装置,所述校验逻辑还包括:
判断当前盘点交易距离上一次盘点交易之间的时间间隔是否超过阈值;如果是,则从所述仓库节点的账户中扣除预设费用给提供方。
12.根据权利要求7所述的装置,所述校验逻辑还包括:
判断所述货物的提供方预缴的盘点费用是否充足;如果否,则进一步调用所述货物智能合约中声明的交接逻辑,将所述货物的所有权状态变更为仓库。
13.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010585453.0A CN111475521A (zh) | 2020-06-24 | 2020-06-24 | 基于区块链的货物管理方法及装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010585453.0A CN111475521A (zh) | 2020-06-24 | 2020-06-24 | 基于区块链的货物管理方法及装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475521A true CN111475521A (zh) | 2020-07-31 |
Family
ID=71763996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010585453.0A Pending CN111475521A (zh) | 2020-06-24 | 2020-06-24 | 基于区块链的货物管理方法及装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475521A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199739A (zh) * | 2020-10-28 | 2021-01-08 | 欧冶云商股份有限公司 | 基于区块链多角色存证验证的电子仓单生成方法及系统 |
CN112199446A (zh) * | 2020-12-01 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 一种物品流通记录的存证方法、装置、设备和存储介质 |
CN112384921A (zh) * | 2020-10-12 | 2021-02-19 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
CN112948465A (zh) * | 2021-03-10 | 2021-06-11 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN113055432A (zh) * | 2021-01-23 | 2021-06-29 | 肖雁萍 | 基于5g和区块链的药品供应保障及管理平台 |
EP3955191A1 (en) * | 2020-08-14 | 2022-02-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Method and apparatus for verifying commodities in batches based on blockchain, and electronic device |
CN114663033A (zh) * | 2022-05-24 | 2022-06-24 | 浙江虎哥数字科技有限公司 | 物品回收动态盘库方法、系统和存储介质 |
CN115022361A (zh) * | 2022-05-24 | 2022-09-06 | 蚂蚁区块链科技(上海)有限公司 | 基于区块链的仓储管理系统、方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615518A (zh) * | 2018-12-11 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约系统的构建方法和智能合约系统 |
CN110033244A (zh) * | 2019-03-15 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约执行方法及装置和电子设备 |
CN110738566A (zh) * | 2019-09-05 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种基于区块链的资产筛选方法、装置及电子设备 |
CN111047443A (zh) * | 2019-11-29 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 用户评分方法及装置、电子设备、计算机可读存储介质 |
CN111241557A (zh) * | 2019-12-31 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的服务请求方法及装置 |
-
2020
- 2020-06-24 CN CN202010585453.0A patent/CN111475521A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615518A (zh) * | 2018-12-11 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约系统的构建方法和智能合约系统 |
CN110033244A (zh) * | 2019-03-15 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约执行方法及装置和电子设备 |
CN110738566A (zh) * | 2019-09-05 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种基于区块链的资产筛选方法、装置及电子设备 |
CN111047443A (zh) * | 2019-11-29 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 用户评分方法及装置、电子设备、计算机可读存储介质 |
CN111241557A (zh) * | 2019-12-31 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的服务请求方法及装置 |
Non-Patent Citations (2)
Title |
---|
冯毅: "基于区块链的智能物流系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
赵磊等: "基于区块链的生鲜食品移动追溯平台框架重构", 《食品科学》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3955191A1 (en) * | 2020-08-14 | 2022-02-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Method and apparatus for verifying commodities in batches based on blockchain, and electronic device |
CN112384921A (zh) * | 2020-10-12 | 2021-02-19 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
WO2022077181A1 (zh) * | 2020-10-12 | 2022-04-21 | 北京和联共识科技有限公司 | 保护区块链上数据安全的方法及装置和电子设备 |
CN112199739A (zh) * | 2020-10-28 | 2021-01-08 | 欧冶云商股份有限公司 | 基于区块链多角色存证验证的电子仓单生成方法及系统 |
CN112199446A (zh) * | 2020-12-01 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 一种物品流通记录的存证方法、装置、设备和存储介质 |
CN113055432A (zh) * | 2021-01-23 | 2021-06-29 | 肖雁萍 | 基于5g和区块链的药品供应保障及管理平台 |
CN112948465A (zh) * | 2021-03-10 | 2021-06-11 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN112948465B (zh) * | 2021-03-10 | 2022-09-06 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN114663033A (zh) * | 2022-05-24 | 2022-06-24 | 浙江虎哥数字科技有限公司 | 物品回收动态盘库方法、系统和存储介质 |
CN115022361A (zh) * | 2022-05-24 | 2022-09-06 | 蚂蚁区块链科技(上海)有限公司 | 基于区块链的仓储管理系统、方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475521A (zh) | 基于区块链的货物管理方法及装置和电子设备 | |
CN111681017B (zh) | 基于区块链的货物批量验真方法及装置、电子设备 | |
CN110706114B (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
CN110765200B (zh) | 一种基于区块链的资产申购方法、装置及电子设备 | |
CN111476667B (zh) | 基于区块链的原创作品交易方法及装置和电子设备 | |
CN110458631B (zh) | 基于区块链的票据号码分配方法、装置及电子设备 | |
CN112767163B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN112132558B (zh) | 基于智能合约的数字货币交易方法、装置及电子设备 | |
CN112883109B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN109872137A (zh) | 一种电子交易方法、节点及存储介质 | |
CN110738566A (zh) | 一种基于区块链的资产筛选方法、装置及电子设备 | |
US11443307B2 (en) | Cross-border resource transfer authenticity verification method, device and electronic equipment | |
CN112132559B (zh) | 数字货币交易方法、装置、电子设备及可读存储介质 | |
CN112766854B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN112199446B (zh) | 一种物品流通记录的存证方法、装置、设备和存储介质 | |
CN111383119A (zh) | 一种基于区块链的资产管理方法、装置及电子设备 | |
CN111506652B (zh) | 基于区块链的交通事故处理方法及装置、电子设备 | |
CN111640002A (zh) | 一种基于区块链的货押贷款方法和装置 | |
CN110717820A (zh) | 基于区块链的资产清偿方法及装置、电子设备 | |
CN111475522A (zh) | 基于区块链的仓单数据管理方法及装置、电子设备 | |
CN111260362A (zh) | 一种区块链网络的信息处理方法及装置、存储介质 | |
CN111553695A (zh) | 跨区域支付方法及装置、电子设备 | |
US20140012723A1 (en) | Method of and system for managing an asset | |
CN111383118A (zh) | 基于区块链的资产管理方法、装置和电子设备 | |
CN114119243B (zh) | 基于区块链的池融资管理方法、装置、介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40034493 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200731 |
|
RJ01 | Rejection of invention patent application after publication |