暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
初识Oracle数据库中区块链技术.pdf
124
7页
0次
2024-02-19
5墨值下载
初识Oracle数据库区块链技术
区块链是当今社会的热词之一,我在百度中输入关键字“区块链”,搜索结果居然超过1亿
个,Google中输blockchain”, 搜索结果更是高达5亿多条。根据百度的溯本求源,区块
链概念最早是从2008年诞生的比特币衍生而来的10多年来全球各国、各行各业都在大力推进区
块链技术、解决方案和产业的发展,我国高层也高度重视区块链对未来经济发展的驱动作用,
至在国家“十四五”规划纲要中都将区块链列入规划之中“培育壮大人工智能、大数据、区块
链、云计算、网络安全等新兴数字产业,提升通信设备、核心电子元器件、关键软件等产业
平。”
在众多区块链技术、产品和解决方案供应商中,自然少不了全球最大的企业级软件供应商
Oracle公司的身影,我在Oracle中文官网中浏览了https://www.oracle.com/cn/blockchain/
址,了解到Oracle仅在本地数据中心,而且在云端SaaS层面都提供了区块链的全面解决方案
区块链技术和解决方案也涵Oracle的数据库、中间件、应用软件等各层级产品,其内涵之深
刻、外延之广泛令人仰止。
作为一名Oracle数据库专业人员我早了解到Oracle数据库自19c某个RU版本开始就内置
对区块链技术的支持,但是囿于时间和精限制一直没有深入探究,最近利用休假的闲暇终于
初探其究竟并成拙文,供同样好奇者狩猎之阅
1. 什么是区块链?
以下就是百度百科中关于区块链的描述:
区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺
序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是
安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修
改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主
体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:一是
据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任
的问题。
是否太抽象?以下是百度百科中另外一篇文章对区块链的总结性解读:
区块链是一种链式存储结构,可以用于记录数据,类似档案或记事本。
基于信任和共识建立的区块链,数据不可被更改,就像档案涂改无效。
比特币是基于区块链技术的应用,与区块链不可混为一谈。
区块链技术是当下中国高度支持的数字技术,也是未来的发展方向。
未来区块链技术在国际合作、数据共享、金融交易、可信认证等领域有着广泛应用,也是财富增长的
密码。
当前区块链的应用很不成熟,让你加入区块链发财的一定是骗局。
我想上述总结的最后一条最易于理解,哈哈。
我理解区块链不仅是技术话题,更涉及广泛的应用领域。作为纯技术人员,本文我主要从
Oracle数据库技术层面去理解21c是如何支持区块链技术的,而区块链在跨境贸易、国际合作、
货币结算、股票期货交易、政务数据共享保险理赔、知识产权保护等各行各业的应用则需要更
多行业专家来解读了。但是深入了解区块链的技术本质,对于理解区块链技术在各行各业的应用
场景一定是非常有帮助的。
2. Oracle区块链表的基本涵义
Oracle区块链表的创建
Oracle数据库对区块链技术的支持是以区块链表为载体的,即区块链表Oracle区块链技
术、解决方案和应用软件产品的核心技术。因此,本文主要介绍Oracle区块链表的技术原理
时,从具体语句和例子开始,也是便于大家对新知识、新技术的理解,也有了一种扎扎实实的落
地感。这就是Oracle创建区块链表的典型语句
CREATE BLOCKCHAIN TABLE bank_ledger (bank VARCHAR2(128), deposit_date DATE,
deposit_amount NUMBER)
NO DROP UNTIL 31 DAYS IDLE
NO DELETE LOCKED
HASHING USING "SHA2_512" VERSION "v1";
即创建区块链表与常规的创建表CREATE TABLE不一样的是增加了一个BLOCKCHAIN关键字,
然后是正常的业务字段。区块链表在技术本质上是一个只有INSERT作的表,接下来是创建区块
链表不可缺少的三个部分,这三个部分更细化了区块链表的主特征
第一,上述语句中的NO DROP UNTIL 31 DAYS IDLE表示bank_ledger区块链表31天没有
INSERT操作之后可以被删除掉。后续可以通过alter table语句修改该表的保存期限,但只能扩
大而不能缩短保存期限。如果定义成NO DROP LOCKED,则意味着该表永远不允许被删除。
第二,上述语句中的NO DELETE LOCKED表示该表的记录永远不可删除,而LOCKED项表
示该策略永远不可更改。该参数也可设置成NO DELETE UNTIL 16 DAYS AFTER INSERT LOCKED
表示该表的记录在没有INSERT操作之后的16天方可删除。同样的,LOCKED选项表示该策略永远不
可更改。如果没LOCKED选项,该策略可以通alter table语句修改该表记录的保存期限,同
样只能扩大而不能缩短保存期限。
第三,HASHING USING "SHA2_512" VERSION "v1"参数则代表区块链表的另一大特征,即与
常规表的记录之间是没有关联关系,即上下文无关不一样的是区块链表的记录是顺序关联的
即上下文相关的。这就是区块链表记录顺序关联的示意图:
即除了第一条记录之外,区块链表的每条记录都与上一条记录相关,故称之为链条chain),
并且区块链参与者都可验证这种链条关系。区块链表记录包括常规的业务字段Oracle自动生
成的隐含字段,所有的字段称之为Row Data例如Row Data1Row Data2Row
Data3… …。区块链表每条记录都有一个行HASH值(Row Hash该值的计算为该行Row Data
上一条记录的HASH值的再次HASH计算值,即Hash1=hash(Row Data 1 and Hash0),其中Hash0
一个固定的常量Hash2=hash(Row Data 2 and Hash1)Hash3=hash(Row Data 3 and Hash2)…
以此类推。Oracle可支持多种HASH算法,上述语句表示采用"SHA2_512" VERSION "v1"HASH
法。
Oracle区块链表的内部隐含字段
如上所述,Oracle块链表记录包括常规的业务字段和Oracle动生成的隐含字段,隐含字
段主要用于对区块链表记录的内部管理,并且在Insert操作之后由Oracle自动生成。隐含字段的
涵义大致如下:
隐含字段名称
类型
基本涵义
ORABCTAB_INST_ID$
NUMBER (22)
实施Insert操作的数据库实例号(Instance ID)
ORABCTAB_CHAIN_ID$
NUMBER (22)
链条IDChain ID),取值0-31,表示一个实例
中的一个区块链表可以包括32个链条
of 7
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。