| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 区块链商用案例:网间结算联盟链建设实战 -> 正文阅读 |
|
[区块链]区块链商用案例:网间结算联盟链建设实战 |
01 网间结算的业务特点和难点 网间结算是对运营商用户之间的通信行为进行的费用结算,包含语音、短信、彩信业务结算。运营商通过采集各自互通网元上的话单,按照工信部规定的结算规则,进行结算批价,出具对账交换表。三方交换对账表确认无误后出具正式结算报表,进行财务结算。如果出现差异,三方需各自约定抽取详单数据比对,核查问题,问题核查清楚后,再重新输出对账交换表进行比对、确认,输出正式结算报表后进行财务结算。 用常规的系统方式实现上面的网间结算对账流程,需要将数据存储到数据库中,但数据不论存放在哪个运营商的数据库中,都存在数据被篡改的风险。因此需要一套可信任、不可篡改的技术来帮助三方完成网间结算对账业务,这恰好是区块链技术的特长。 02 区块链科普
区块链架构设计图 分析1: 由此,运营商三方的网间结算业务适合使用区块链技术进行优化和提升,通过区块链技术的特点能够帮助各方更高效、安全地完成网间业务结算,在传统支撑模式的瓶颈处获得突破,形成更加良好的业务效果。 区块链技术可以分为:公有链、私有链和联盟链。 公有链,是全公开的区块链,所有人都可以作为网络中的一个节点,不需要任何人给予权限或授权。私有链,是指整个区块链上的所有写入权限仅掌握在一个组织手里,而读取权限可以根据情况对外开放或者任意进行限制。 联盟链,是一种多中心化或者部分去中心化的区块链。联盟链账本上的数据与公有链的完全公开是不同的,只有联盟成员节点才可以访问,并且链上的读写权限、参与记账规则等操作也需要由联盟成员节点共同决定。一般来说联盟链的交易性能比公有链快,但要比私有链慢。 几类区块链技术对比 分析2: 通过对比发现,联盟链技术最适用于解决运营商之间的网间结算对账业务问题。和公有链的全公开特性、私有链的单组织管控特性不同,联盟链技术可实现运营商三方共同参与管理区块链,在保障数据隐私、安全的同时,交易成本低、交易速度快的技术特性又能降低投入成本、保障业务性能要求。 03 网间结算 + 区块链 网间结算业务流程主要由四个关键点组成,其分别为交换报表提交、交换报表对账、对账数据审核、财务报账数据生成,参与业务流程的各个环节均涉及大量的业务数据。 网间结算业务流程 智能合约是传统合约的数字化版本,在区块链网络上针对满足条件的节点自动执行。它具有内容公开透明、内容不可篡改、永久运行几大特点。依据联盟链的技术特点,可使用智能合约实现四个环节的核心业务功能,使用区块存储技术来保存每个环节的关键过程数据: 网间结算联盟链解决方案
04 应用实战要点 区块链研发流程和传统研发流程类似,但是又有些许不同,以下从需求分析、方案设计、功能研发、联调测试四个阶段进行展开介绍: 需求分析 区块链需求分析和传统需求分析方法类似,需要找相关干系人调研业务逻辑,约定功能点输出需求分析说明书。区块链需求分析不同之处在于,需要在业务流程中挖掘业务动作和业务数据,这些业务动作大部分会在设计阶段按智能合约函数功能进行设计实现,而业务数据则会在设计阶段的模型设计工作中,设计成符合区块数据的数据结构,以便后续存储到区块链中。 业务流程识别业务动作、业务数据方法图 如上图所示,从业务流程识别出业务动作、业务数据主要通过两个步骤完成:首先根据流程中识别出哪些是业务数据、哪些是业务动作;其次业务数据依据业务内容填充对应的业务属性,业务动作则以函数出入参和函数逻辑方式进行结构定义。 方案设计 区块链的设计方案的主要工作是定义需要上链的区块数据结构,以及智能合约的出入参和逻辑定义,将这两部分整合成能指导开发测试工作的设计文档。 上链区块数据结构设计时,先要识别数据是否适合上链,以什么形式上链,再设计其区块数据结构。如大文件(如果必须要上链可选用哈希上链方式)和大量冗余重复这种数据不建议上链,可上链的数据包括有价值的数据(如积分、票据)、有共享需求的数据(企业的征信数据)、需要协同处理的数据(如运营商网间对账结果)。上链方式依据不同数据场景进行选择,有哈希上链(将原数据计算出哈希值后进行上链,适用于大文件场景)、数据格式化上链(数据按json或者xml等格式格式化后上链,适用于业务对象场景)、加密后上链(采用对称加密方式,只有持有私钥的节点方能解密,适用于敏感数据场景)。 智能合约设计时内容包含入参、出参以及智能合约逻辑。区别于传统函数设计,智能合约逻辑不能太复杂,因为智能合约包含了有关交易的所有信息,只要满足条件后所有节点都可以执行,太复杂会影响总体性能。 功能研发 区块链的研发工作主要包含上链数据业务逻辑研发,以及智能合约研发。不同区块链平台对开发语言也有所不同,需要针对性进行技术储备,如C++语言多用于比特币(BTC)、莱特币(LTC)平台,Go语言多用于以太坊ETH(用于联盟链或私有链)、超级账本fabric(用于联盟链或私有链)平台。此外,建议区块链研发工作由单独研发小组负责,这样可以避免后续代码统一管理,明确每个智能合约接口人可在后续提升联调效率。 联调测试 联调测试主要包含智能合约的功能点验证、节点交易同步等,以下举例说明: 智能合约测试时,先验证各种变量类型、语法表达式、控制接口等合约结构,在区块链平台是否都能跑通;再验证某些安全场景下,能否冻结或者销毁合约,使之不能再被调用执行。 节点交易同步,验证客户端发送到某个节点的交易,是否能正常同步到其他节点去。在没有交易时,还需要验证节点状态是否有正常同步到其他节点。 05 结语 自2019年区块链上升为国家战略部署重要内容以来,区块链技术及其产业实现快速发展。作为新基建之一,区块链技术成为我国数字政府建设与数字经济发展过程中重要的基础设施。 “联盟链”基于智能合约,将结算数据、结算公参和结算规则加密上链,为结算各方提供结算信息安全共享、账单数据加密交换、自动对账、数据确权与结算等服务,使交易过程实时留痕并可追溯,确保了结算过程的透明化,提升了结算的安全性与可信度。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 7:50:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |