authentication - 区块链数据库的认证过程
问题描述
我是区块链技术的新手,我想从产品认证开始我的项目。我很好奇使用它是否是一个不错的选择。
例如,假设我有一些真实的实物产品,我想检查它们的原创性。他们获得了唯一的序列号或附加的电子标识符(例如 RFID)。
根据这个简单的python区块链:https ://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b
在块类中
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.hash_block()
每次扫描某些产品(例如通过电话)时,我们都会创建新块。那么数据中应该包含哪些信息?产品名称、序列号、动作类型?
一开始,在所有产品创建完成后,每个人都会被初始扫描。例如,对于 100 个初始产品及其扫描,区块链中将有 100 个区块。
身份验证过程如何在这里工作?有没有办法扫描一些产品(它的 ID)并使用这个区块链数据库来确保它的原始产品?这种技术在那种情况下有用吗?
解决方案
是的,用例实际上是一个非常标准的用例。在供应链管理行业中有许多关于此类用途的示例。例如, Everledger验证钻石碎片及其来源。
身份验证过程如何在这里工作?有没有办法扫描一些产品(它的 ID)并使用这个区块链数据库来确保它的原始产品?这种技术在那种情况下有用吗?
我认为您应该将其称为产品(原产地)验证。只要你抽象出区块链技术本身,这很简单。这就是我将区块链技术抽象出来的意思——把区块链想象成一个不可变的账本(数据库),数据可以在其中插入一次,但永远不能从中间更改或删除,你总是可以从中读取.
假设有一种区块链技术(我将在最后添加有关区块链的详细信息。)现在,根据定义,您始终可以向其中添加数据,在您的情况下是一些跟踪号/QR/ID 等。当您必须验证产品,您必须确保相应产品的区块链中存在该条目。就那么简单。是的,这是区块链最著名的用例之一,尤其是在多个系统与同一数据库交互的共享数据生态系统中。
您所指的文章是从程序员的角度对区块链的非常简单的解释。出块时间、出块频率都是针对不同用例而变化的变量。我建议你研究已经成熟的区块链技术并部署它们,并专注于你的用例。您可以将以太坊技术用作本地节点。然后,您可以使用web3.py
非常成熟的 Python 库与您的区块链进行交互。或者你可以简单地使用分布式账本,Hyperledger Projects就是一个例子,甚至更简单(在我看来,更好)BigchainDB。借助所有这些技术,您可以在区块链上存储您喜欢的任何类型的信息。
推荐阅读
- apache-spark - 在配置单元中更改表(插入新数据)时此记录插入新数据的时间
- asp.net-mvc - Typescript equivalent of inline JavaScript
- azure-logic-apps - 自定义连接器 - OData 查询 - 让它们漂亮吗?
- jestjs - 使用 react-hooks-testing-library 测试自定义钩子会引发错误
- windows - 在 docker 上运行 jenkins(在 Windows 上)...运行管道作业的正确步骤
- c# - 选择语句做“每个”的事情,然后返回自己
- sql - 计算表中出现次数的最佳方法?
- c - 如何在输出中仅打印文件中检测到的字符串的行
- kotlin - Vertx/RxJava/Retrofit 阻塞
- .net - ASP.NET 哨兵配置