JAVA开发(神乎其神的区块链技术之数据上链)

这篇具有很好参考价值的文章主要介绍了JAVA开发(神乎其神的区块链技术之数据上链)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        这是我第二遍写关于区块链的博文,前一篇文章《神乎其神的区块链概念和技术》主要介绍区块链的由来和基本概念。因为博主最近在做一个区块链项目,所以有时候也遇到一些概念性的知识需要去理解,比如数据的上链。谈到数据上链,我们先了解一下现在都有什么链。

一、区块链的分类:

根据不同的条件划分大致可以分为:

公链、私链,联盟链、主链,测试链、单链、侧链、互联链、基础链、行业链。

  • 根据网络范围可分为公链,私链,联盟链
  • 根据部署环境可分为主链,测试链
  • 根据对接类型可分为单链,侧链,互联链
  • 根据应用范围可分为基础链,行业链

博主认为一个分布式的数据库与去中心化存在一定的矛盾,所以上面的链的去中心化都是相对而言。除了所说的公链代表的是整个互联网,其他的链都是小范围的数据存储,严谨的说还是有中心,有专门人管理。

公链:

  • 公有链是指任何人都可读取,发送交易,且交易能获得有效确认的,任何人都能参与其共识过程的区块链
  • 公有链是完全去中心化的,整个系统的运作规则和数据公开透明,没有人或者机构可以控制,篡改其中的数据,具有保护用户免受开发者影响的作用
  • 公有链中程序开发者无权干涉用户,访问门槛低,也就是说,一台能够联网的计算机就能够满足访问的条件,目前市场上比较知名的公有链包括比特币【BTC】,以太坊【ETH】,波卡【DOT】,EOS,币安,索拉纳等等。

私链:

  • 私有链是与公有链相对的概念,就是不对外开放,仅在组织内部使用的系统,参与的节点是有限和可控的,因此私有链具有交易速度快,隐私保护强,交易成本更低,不容易被恶意攻击等优势。
  • 尤其适合比如企业的票据管理,财务审计,供应链管理等,或者一些政务管理系统等
  • 私有链基本是中心化的,严格来讲不算区块链。

联盟链:

  • 联盟链是部分去中心化的,介于公有链和私有链之间,其参与者是被提前筛选出来或者直接指定的
  • 数据库的读取权限可能是公开的,也可能像写入权限一样仅限于系统的参与者,通常是在多个成员角色的环境中使用,比如银行之间的支付结算,企业之间的物流等
  • 联盟链并不一定要完全管控,比如政务系统,有些数据是可以对外公开的。

侧链:

  • 侧链是平行于主链的一条区块链,可以理解为是区块链的一种扩展协议,早期“侧链”是为了解决比特币以太坊的限制问题,比如2017年,牛市来袭,链上交易量大幅提升,超出了网络自身的吞吐能力,造成链上大面积的拥堵和延迟,所以就出现了加密猫游戏的火爆使整个以太坊网络瘫痪的事情;
  • 现在可以将主链上小额零散的交易全部转移到侧链上进行,大大减缓了主链的交易压力;
  • 这样做还有一个好处,就是可以保证一定的安全性,如果你的交易地址中有大量的比特币或者以太坊,相信你也不愿意让其他人知道你是拥有者,侧链也可进行简单支付验证,不需要将所有交易都过一遍比特币的原生区块链系统,所以在交易的处理速度上侧链也具有相当的优势。

测试链:

  • 测试链这个很好理解,就是开发者为了方便大家学习和使用,而提供的测试用途的区块链网络,比如比特币,以太坊的测试链等
  • 最后部署在生产环境的真正的区块链系统就是主链
  • 不管是公链,私链,联盟链,侧链,都没有绝对意义上的优势和劣势,根据不同的应用场景,最合适的才是最好的。

二、区块链的上链:

数据上链是指用户将自己的数据加密上传到基于ipfs的公网侧链,并在公信链形成数据索引的过程。数据一旦上链,除了你本人的Data_key授权解密外,任何个人或组织都没有能力获取到你的数据,从而保证数据的绝对安全。

上链前三步走:

第一步,根据企业所在的上下游产业,设计一条链的起点和终点。理论上讲,所有产业链的起点都是大自然,终点都是消费者。但在设计一条具体的链时,不一定要覆盖到大自然,终点也未必一定要延伸到消费者。要根据每一条不同的链的特点灵活设定链的长短、起点与终点。

第二步,起点终点确定后,在每一个环节或者行业选择哪些企业上链?选择的标准又是什么?一条产业链的设计,不一定是每个环节都要选最好的企业上链,链就是最好的。这和球队选球员的逻辑类似,一个球队如果前锋、中锋、后卫都是最好的,这个球队就是最好的吗?未必!

第三步,Token的设计,包括Token的价值支撑、应用场景。股票的价值来自单个公司全部利润的分红,Token的价值则来自链上的各个环节、各个企业的贡献。比如,有的公司按照销售额,有的按利润,有的按贡献产品或服务,各种方式都可以。贡献即挖矿,都可以获得Token。

业务数据上链前需要将业务数据处理,并且对信息进行签名。这些过程可以通过对应的工具,比如序列化工具和各种椭圆曲线的签名工具来完成,不过更多的时候是通过将各种工具集成的SDK来完成,以太坊的web3就是比较典型的上链前处理的开发工具。

数据层的一大功能是存储,存储系统的选择原则是性能和易用性。一个网络系统的整体性能,主要取决于网络或本地数据存储系统的I/O性能,比如比特币用的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。

一笔交易从产生到上链完成的流程:

验证——在比特币区块链中,当一笔交易经由某个节点或钱包产生时,这笔交易需要被传送给其它节点来作验证。验证的做法是将交易资料经由数位签章加密并经由Hash函数得出一串代表此交易的唯一Hash值后,再将这个Hash值广播(Broadcast)给比特币区块链网络中的其它参与节点进行验证。

产生一笔新交易—— 一笔新交易产生时,会先被广播到区块链网络中的其它参与节点,各节点将数笔新交易放进区块,每个节点会将数笔未验证的交易Hash值收集到区块中,每个区块可以包含数百笔或上千笔交易。

决定由谁来验证这些交易?——各节点进行工作量证明的计算来决定谁可以验证交易,由最快算出结果的节点来验证交易,这就是取得共识的做法。

广播-——取得验证权的节点将区块广播给所有节点,最快完成POW的节点,会将自己的区块广播给其他节点,各节点验证并接上新区块,其他节点会确认这个区块所包含的交易是否有效,确认没被重复花费且具有效数位签章后,接受该区块,此时区块才正式接上区块链,无法再窜改资料。

交易验证完成——所有节点一旦接受该区块后,先前没算完POW工作的区块会失效,各节点会重新建立一个区块,继续下一回POW计算工作。

JAVA开发(神乎其神的区块链技术之数据上链)

 文章来源地址https://www.toymoban.com/news/detail-475285.html

到了这里,关于JAVA开发(神乎其神的区块链技术之数据上链)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链技术在软件开发中的应用

    如果你是一名软件开发者或者IT从业者,你一定已经听说过区块链技术。区块链是一种基于密码学的分布式账本技术,被广泛应用于数字货币、金融、物联网等领域。但是,除了这些领域之外,区块链技术还可以在软件开发中发挥重要作用。本文将介绍区块链技术在软件开发

    2023年04月27日
    浏览(73)
  • 【区块链技术开发】 关于Windows10平台Solidity语言开发环境配置

    在 Windows 上配置 Solidity 语言开发环境需要进行以下步骤:

    2023年04月20日
    浏览(61)
  • 【区块链技术开发】十个比较流行的以太坊智能合约开发框架

    专栏:【区块链技术开发】 前期文章: 【区块链技术开发】剖析区块链Ganache模拟器工具及其智能合约部署区块链的查询方式 【区块链技术开发】基于Web3.js以太坊网络上的智能合约的交互及其应用 【区块链技术开发】OpenZeppelin智能合约库:提高智能合约的安全性和可靠性,

    2024年02月02日
    浏览(64)
  • 数据建模与区块链:利用区块链技术提高数据安全性

    作者:禅与计算机程序设计艺术 《13. \\\"数据建模与区块链:利用区块链技术提高数据安全性\\\"》 引言 1.1. 背景介绍 随着信息技术的迅速发展,数据规模日益增长,数据的重要性也日益凸显。数据建模是保证数据安全性和有效性的重要手段之一。传统的数据建模方法主要依赖于各

    2024年02月13日
    浏览(45)
  • 33复杂美区块链核心技术Chain33开发平台系统特点

    简单易上手 联盟让开发者一学就会用,一用就能开发部署,是Chain33的首要愿望。Chain33开发者平台部署快捷简单,一个可执行文件,数个配置参数,一行启动命令便可以快速部署一个区块链主链网络及平行链网络。 高效 联盟区块链中,交易在主链上共识并存储。多条平行链

    2024年02月12日
    浏览(49)
  • 程序员如何实现财富自由系列之:参与区块链技术的开发和投资

    作者:禅与计算机程序设计艺术 随着各行各业的人工智能技术应用越来越普及,“区块链”这个火热词汇在近几年已经掀起了一股新的热潮。 区块链(Blockchain)是一个分布式数据库,它通过对数据进行记录、验证、存储、防篡改等方式确保数据的真实性、完整性和有效性。

    2024年02月07日
    浏览(54)
  • 数据验证技术:保护区块链系统的关键

    区块链技术作为一种去中心化的分布式账本,具有高度的安全性、可靠性和透明度。然而,区块链系统也面临着诸如51%攻击、双花攻击等严重安全风险。为了保护区块链系统的安全,数据验证技术成为了区块链系统的关键。 数据验证技术是一种在区块链系统中用于验证交易和

    2024年04月28日
    浏览(32)
  • 区块链技术及其对大数据分析的影响

    李升伟  综述 在这里,我们将帮助您掌握区块链与大数据这两大技术及其交汇的基础知识[1]。                                                 所谓区块链技术, 简称BT(Blockchain technology),也被称之为分布式账本技术(distributed ledger technology),它是一种互联网数据

    2024年02月03日
    浏览(34)
  • 数据库视角下的区块链技术

    1 overview 本文关注数据库视角下的区块链技术。 首先,我们来看一下数据库和区块链的定义。数据库是数据管理的产物,而数据管理则是数据库的核心任务。当数据规模变得很大、用户变得更多时,单一节点的数据库满足不了用户的需求。分布式数据库便应运而生,目的是存

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包