使用Unity开发一个独立的区块链

news/2024/5/10 17:42:50

Arouse Blockchain [Unity独立区块链]

Arouse徽章
在这里插入图片描述在这里插入图片描述在这里插入图片描述
❗️千万别被误导,上图内容虽然都在项目中可寻,但与目前区块链的业务代码关联不大,仅供宣传作用(总得放些图看着好看)。之所以有以上内容是项目有个目标功能是希望每个用户在区块链上都有一个独一无二的AI虚拟角色,目前角色出来了,但AI还没有训练😂,也没有完全接入区块链😂。So, 至少目前此项目更多的还是以区块链的纯代码为核心,也希望你把代码作为核心学习目标。

  • 这是一个学习性质的项目,使用了Unity进行独立区块链的开发。
  • 使用此项目,将默认你有一定的Unity基础,如果你是Unity小白,可以先学习Unity,B站有大量的教材。

快捷链接


GitHub源码地址    Gitee源码地址    CSDN文章地址



目录|📖

  • Arouse Blockchain [Unity独立区块链]
  • 快捷链接
  • 内容列表
  • 二. 项目使用说明🧪
    • 1. 背景
    • 2. 开发环境说明🏃
    • 3. 整体架构
      • 3.1 核心模块
      • 3.2 业务层
      • 3.3 数据层
      • 3.4 通讯层
      • 3.5 事务层
      • 3.6 应用层
    • 4. 文件结构
  • 三. 区块链关键概念🌍
    • 1. P2P对等网络
    • 2. 不可逆加密
    • 3. 共识机制
    • 4. 分布式储存
  • 四. 未来遐想 [头脑风暴区] 🧠
      • -XXXXX-
  • 一. 项目状态说明⛳️
    • 1. 徽章
    • 2. 相关仓库
    • 3. 如何贡献❤️🌟
      • 贡献者
    • 4. 使用许可



内容列表


一级二级简述
项目的状态说明徽章这将为我带来最大的动力,感谢🙏🙏
项目作者❤️ @KitStarLee ❤️
相关项目
如何贡献
使用许可
项目的使用说明项目背景如果你是区块链小白,请跳转 [区块链概念简述] 或其他文章。
环境说明开发使用到的相关软件版本以及插件
整体架构区块链涉及到的核心代码,以及本项目代码的业务层、数据层、网络层、事务层相关的说明。
文件结构方便开发者快速定位到代码所处的目录
功能解释功能的计划和完成的情况,以及对应代码的使用说明
区块链关键概念P2P对等网络
不可逆加密
共识机制
分布式储存
遐想头脑风暴徽章


二. 项目使用说明🧪


对 项目背景、开发环境、整体架构、文件结构、关键代码和功能解释方面进行展示说明。

1. 背景

      都2023年了,区块链在这此时代热浪下都已经是即将燃尽的火苗了,市面上关于区块链相关新闻咨询少了很多,而ChatGPT、Stable Diffusion等AI产品已经完成无缝接力,成为当下风口和热浪。

      而区块链作为上一任浪热下的余晖,被打上“衍金融产品“的标签后,并没有对我们普通人的生活有什么改变。但潮水退去,不代表着它不会留下任何痕迹,目前区块链在国内更多作为信用链存在,用于法律签约、物流运输、商务合作、加密合约等等公共底层方面。

      然而除了以艺术藏品方式可以被C端用户直接接触外,还有其他什么方向可以利用呢?其次作为产品经理,我需要对这些崭新的技术保持强力的热度与了解力。但买了很多区块链的书籍,也搜了很多文章,那些似是而非的内容,用了大量非技术的角度解说区块链,加上时间有限,总感觉自己对它的了解不够深刻,深刻到那种我可以一听到需求,就知道如何改进如果调整他们。那么如何深刻理解,我选择的方式即是:直接自己编程。

自己编程除了能深度了解技术原理,更重要的是你会容易沉浸其中,精力和时间不会容易分散,是适合短时间内深度了解一个事物的一种方式。当然,你还可以通过写书、开设论坛、融入相关群体天天交流等方式,都可以达到这个目的。

基于背景,这个项目也赋予了以下特性:

  1. 属于自学型项目,使用Unity和相关Unity插件重头编辑一个自己的区块链和P2P网络。
  2. 属于教学型项目,对于Unity、C#开发人员有很好的教学价值。
  3. 属于非专业的项目,给予教学目标,代码无法直接用于专业的商用。
  4. 属于非完全的项目,项目还在开发中,加上我并不是特别强的开发人员,所以项目中会有大量的瑕疵,请勿喷。

项目的目的:

  1. 国内技术能力日益增长,希望有更多开发者在闲暇之余,能研究区块链或其他的技术,做处一些有意义的项目,实现自身价值。
  2. 以及交流学习,提升自身。

如果你也是开发人员,如果你恰好还是Unity开发人员,那么同学,请收藏此仓库🌟,给个星星🌟。虽然当前项目不算完善,但你的一个小小的赞,是我们继续完善下去的最直接最强有力的动力。也希望这个鼓励❤️能延续传递下去,让更多的技术人员作出有意义的项目。




2. 开发环境说明🏃

为了避免不必要的错误,使用的Unity版本请不要大于或者小于此项目版本的2个版本。

基础说明版本其他
Unity版本2021.3.18f1c1
数据库LiteDB.5.0.16区块链数据都是保存在Peer设备的本地,区别与哪些设备有权保存
P2P网络协议UDP以太坊也是使用的UDP协议
多线程工具UniTask关于UniTask
网络插件SuperNet关于SuperNet

3. 整体架构


在这里插入图片描述

3.1 核心模块

      区块链概念中的“区块“,即是指一种数据结构,传统的数据在物理结构上就是把数据分别保存在不同的集中式数据服务器上,数据呈现是扁平型类,好处是数据统一管理方便存取,坏处是数据量增大时,就得增大对应的服务器设施。而区块链是把特定的数据一批批的打包加密好之后进行保存,并且包和包之间存在着不可断开的强联系,这种链式的数据结构称为区块链,而每次打包的数据体称为区块。这种链式结构的好处是每个包体相对独立又强烈依赖,每个包体的容量有限方便传输,但同时也带来了更多的难点,而区块链的其他模块即是针对这些问题而采取的技术手段。

      其中“区块“模块,需要负责每个区块(也就是数据包)的打包、认证、加密、解析等等操作。

      “交易/通讯“模块,主要负责用户之间的数据交互,只所以也用了“通讯“的命名,是因为“交易“是金融型区块链常用的命名,但其实对于程序来说它只是一种通讯数据类型,既然我们的是使用区块链应用于其他行业,所以用通讯交换更加贴切。

      “交易/通讯池“模块,区块的打包只能去打包有效、正确合法的数据,所以用户之间的通讯信息不能直接就打包,需要先缓存在讯通池中,等有用户完成了特定事件,进行打包的时候再统一从池子里面获取通讯数据,进行验证后再打包。

      “质押“模块,质押模块是POS权益证明类型的概念,属于区块链共识机制之一。无论是POW工作量证明还是POS权益,本质都是为了解决一个问题,谁有权益去打包,如果大家都可以无时间无条件限制的打包,那就产生了先用谁的谁的对的问题。而共识机制即通过算法规则,让这种权利自动化的方式。在本项目代码中,你可以同时看到POW相关算法代码,也可以看到POW相关代码,且由于POW太消耗设备,所以此项目采用POS机制,当前我们知道了它的作用,你用其他机制甚至自研机制也可以,但是切记一个好的机制是赏罚分明且平衡,并且最主要是无法被恶意破坏。还有其他机制可以自行搜索。

      “Peer节点“模块,区块链中重要的三个重要角色:用户、矿工、节点。这三个角色中由于权限、责任和保存数据的不同进行了划分。其中节点即是区块链P2P网络中的Peer,代表着网络中的一个节点,它有根据保存数据的多少分为全节点和SPV节点,全节点很好理解就是保存所以区块的数据,而SPV节点只是保存区块的索引信息,就好像是全节点保存了所有的书,而SPV只是保存了书的名字和位置,但没有书里面的内容。而矿工也是节点的一种类似,区块链会有一些社区自建的节点,而社区的扩展需要发展更多的节点,所有有了矿工,他们通过平台的共识机制通过付出一些成本,然后获取保存数据称为节点的存在,然后获取到对应的报酬。并且节点还其中中继器的左右,中继器就是一个中间人,在P2P网络中我要去和B进行通信,需要一个公网的中继服务帮我联系到对应的B,从而进行通信。最后就是用户了,用户很简单,即是区块链应用层的使用者。

在此学习项目中,我们将不区分用户、矿工、和节点,他们统一都是以节点存在,有着节点的责任和义务。

      “Peer储仓“模块,储仓是此项目的概念,此项目希望区块链不只是保存数字类型的数据,同时可以保存字符、图片、模型、动画等等这些游戏中使用的数据。那传统的金融区块链的金额保存和计算方式将无法使用,金融区块链计算一个人的资金额度数据,需要通过获取所有区块内交易的数据进行统计,实质上就是通过区块中所有的交易数额的加减的方式进行计算。而加减只适合数字,像字符、图片、模型等等属于唯一性质的虚拟物品文件,就无法通过区块的数字加减得出,所以有了储仓的概念。它的目的是保存非数字类型无法加减计算的数据,并且进行对物品文件数据进行加密打包和映射的工作。当然NFT等数字藏品也使用了类似的方式,只是它们不这么命名,而且区块链的储仓 最好是保存物品数据的唯一映射索引,而物品文件数据保存在传统数据服务中即可,不然庞大的数据量会让区块链臃肿无法使用。区块链它并不能代替什么什么结构,它只是一种新的细分产业的技术方案,就像C#、Python、C++都是一种编程方案,它们各有千秋,各有自己擅长的领域,所以不要陷入技术和舆论的误区,错误认为区块链是一种什么巅峰性的方案。

      “钱包“模块,所有玩过区块链的用户,应该都知道钱包,其实就是钱包就是保存你进去区块链的一个凭证,更简单的说就是保存了你的银行卡号,它可以让你方便的访问区块链中属于你的数据。这里的钱包也相对比较简单,项目本意是想通过“BIP44规范“来实现钱包功能的,但是基于时间和需求量,暂时还是简单的钱包功能。而且这里的钱包生成的助记词采用的是“中文“🇨🇳。 (那必须得是中文!!)

3.2 业务层

业务层需要结合下文的[文件结构](#文件结构)来阅读。

      上面讲述了区块链中几个关键的模块,而在Base文件夹下的代码即是对这几个模块的封装。具体功能需要查看代码,代码大部分都是中文注释。

3.3 数据层

数据层也需要结合下文的[文件结构](#文件结构)来阅读。

      数据层和业务层承上启下,代码均在“DB文件夹“中,是对应模块进行数据库操作的对应代码。
      由于区块链概念中没有中央服务器,那也没有中央数据库,这也是为什么区块链采用的P2P网络形式,所有的数据都是保存在各个节点的本地。而此项目的所有终端都是节点,所以都需要本地数据库,而这里采用了LiteDB数据库,它是一种简洁快捷本地数据库方案,更多关于此数据库的信息可以阅览对应官网。

3.4 通讯层

网络通讯协议采用的是UDP,不用担心它会导致数据丢失,基于Unity插件社区的强大,使用的SuperNet网络插件,它提供了可靠的UDP链接,再保留了部分传输速度和传输便捷性的同时也保存了数据的稳定性。

      根据GRPC通讯以及Unity Unet通讯的架构,这里对通讯层的代码进行了二次封装,使其更好的区分请求和响应的业务,程序会自动处理数据的分发和解析,开发者只需要完善业务逻辑处理即可,当然想要完善特殊业务,还是需要进一步修改的。

      其中Services文件夹保存的对应的数据字段定义,这些定义的类,即用于数据库的保存,同时也用于网络传输,同时这里面也需要定于对于业务的处理机制,机制包括请求和响应的数据。

      ClientImpl文件夹保存了对应请求接口的实现。 [弃用,由于请求接口相对业务逻辑简单,直接可在Services文件夹定义脚本的时候根据固定方式实现]。

      ServiceImpl文件夹保存了对应的业务和数据的响应与处理脚步,简单说就是实现了Services文件夹中对应类的抽象响应方法。

3.5 事务层

      事务管理层主要就是使用了简单的Facade模式来实现区块链的高层接口,方便后续开发方便对接。除了区块链对应的几个核心模块的功能,还有本身数据库事务管理、矿工挖矿的事务管理和应用层面用户直观看到的到的钱包相关管理。

3.6 应用层

更多区块链信息可以直接跳转到区块链概念简述,了解区块链基本概念。

      如果你对区块链有了一定的了解了,就会知道它其实就是一种采用P2P网络的新式网络服务架构,不依赖于中央服务器和数据库,可以更好的把数据的权利分发给用户,也可以减少企业的服务器运营和维护成本。但最大的劣势很明显,不适合保存体积过大的数据。

      但不管它怎么改变,他其实还是一种网络服务。对于我们用户,数据保存在哪里?怎么保存?怎么链接网络?我们是无法直接感受到变化的。我们注重还是产品本身的价值,比如它是能帮我节省流量?还是它能让我的账户更安全?还是它能让我的权益得道更好的保证?还是它能给我生活提升什么便利?亦或是它能让我通过数据挣钱?而恰恰我们在意的点在目前的区块链技术中无法体验。 区块链的金融属性比较特殊,这里不加评论,但简单来说它不具有传统的用户价值,至少目前是的。除非哪天赌博属于有价值的致富方式。

      这一无法给用户带来直观价值的要素决定了区块链的局限性,它目前以信任链的作用更多用于一些政府或者大厂的基础设施的改革和实验,但也是局部范围的。

      当然这一呈否定的认知,只是让我们站在落地的角度认清区块链就是一种网络服务,而不去过度神化,这样才能保持冷静的思考它的可用性。并且我们还没有说 智能合约这一利器,并不能彻底否定它的存在。

这里也给出了一些应用方面的可能性:

      积分权益: 区块链的共识机制和不可破坏的社区规则,恰恰可以用于社区服务,目前行业内社区服务的权益激励确实还存在很大的空缺。如果针对社区权益使用区块链进行Saas化,方便其他三方平台进行参与,为社区用户提供更多的生态转化、更多样的价值体现,将会有联合社区一样的形态存在,集合起来服务用户。当然这也需要区块链具备
智能合约的功能。当然这里只是提供假设,具体实施肯定有更多问题。但假设你开发的产品进行宣传的时候告知用户,你继承了XXX社区链可以共享权益,应该会有很多用户因为之前的存量权益特意去你的产品里面进行体现的。提现有金融性质,体现是通过某种性质或现象通过某一事物具体表达表现出来,可能会更宽泛的形容这一兑换的行为

      正负奖励训练数据: AI实在是太火了,而且由于AI的特性,未来数据的价值会越显重要。假设我们想要开发一套AI无人驾驶飞行算法,传统的方式即是通过大量的现实实验和少量的虚拟实验进行训练。而如果使用游戏化的方式,通过让玩家在游戏中操作无人机进行娱乐,并且在这个过程中收集操作数据,并且给予训练服务进行训练,可能会极大的节省AI训练的成本也就是数据来源的成本。当然这只是不专业的假设,具体实施起来,会发现实际的AI无法驾驶和虚拟的驾驶环境相差过大,模型的泛化能会很低很低,并且还涉及到摄像头的视觉识别,导致虚拟化可能性降低和成本变高。但目前仅是假设,具体实施可行性需要交给未来。

[最新咨询显示英伟达NVLink互连技术已经实现了144 TB内存的共享显卡的调用,对于未来AI领域的发展有着重要的推动作用]

      用户行为数据: 也是一种能为用户带来直接利益的方式,基于未来数据的价值,如果企业需要进行新市场的研究,或者新运营手段,用户数据能为相关策略提供直接价值。而目前行业中并没有这种用户通过出售个人数据来进行盈利的产品,一是你的数据其实不是你的数据,它们都是保存是对应企业的中央服务器,二是他们会把数据归于他们所有,其实理论上不归你所有,因为你无法利用到它,其次就算你的数据可以交易,但目前也没有网络架构无法为此提供保障。而区块链可以很好的提供此服务,对于任意方,大家数据不可篡改,即保护了数据的完整和真实性,也确保用户的权益。如果有天,你可以通过下载一个APP,然后APP有一个收集你健康数据的征集任务,任务标明了收集的数据明细以及最终收益,你是否会卖自己的数据呢?

      个体价值数据: 这个和积分权益差不多,就是把个体用户的数据价值体验出来。也是这个游戏项目想要实现的目标,设想你购买的王者荣耀的皮肤、装备、特效、模型以及你的游戏好友数据真是意义上是属于你的,你还可以把它用于吃鸡或者其他游戏 ,是不是感觉很酷。


4. 文件结构

方便开发者快速定位到项目中区块链的代码

在这里插入图片描述

文件/文件夹路径说明
ArouseBlockchain/…/Assets/ArouseBlockchain/…区块链核心代码,核心代码尽量和Unity代码分离开来,很小的工作量就可以彻底独立出来,方便你用于其他非Unity的C#项目
Base/…/ArouseBlockchain/Scripts/…区块链核心代码
Common/同上区块链公共代码
DB/同上数据保存业务处理
P2PNet/同上P2P网络通信类
Solve/同上Facade模式的高层接口类,用于统筹和对公业务
ArouseBlockchain.unity…/ArouseBlockchain/Scenes/…客户端场景
Server.unity同上服务端运行场景,如何使用?


三. 区块链关键概念🌍


关于区块链概念中一些基础内容的简述

1. P2P对等网络

      传统的网络通讯结构是 C/S 形式的,S 就是一个以上负责通讯转发的服务器Server,C就是我们一个个的客户端Client。你现在手机上用的99%的APP都是这种网络结构,比如聊天软件,你要给朋友发送讯息,得先把讯息发给服务器,然后服务器找到你的朋友,再转发给你的朋友,这种需要中心服务器转发消息的网络架构就是C/S 架构。而P2P则完全不同,”P”即是 “Peer”,这里我给予技术解释为“对等端”,对等端可以理解为在一个业务体系中,同处于一个级别的所有端的全体的总称,简单来说的比如我们都是使用聊天工具的用户,我们每个用户就是同等级的对等端,而作为工作人员的聊天软件的运营人员又有着不同的权限和职责,它们又成为了新的同等级的对等端,且这个不同的等级的分界并不是那么统一的,这取决于你服务的业务。

      当然上面说的是P2P的宏观定义,而P2P具体的技术实现架构就是一个让所有的对等端可以直接通讯,不需要中心服务器进行转发的网络架构。这也并不是什么新的技术了,迅雷的视频下载就提供了P2P,它的好处就是越多人下载,理论上你就有个越多的资源服务器,然后资源的下载速度就会快。这种方式一方面减少中心服务器的压力,一方面提升了用户的体验。

      P2P的网络链接,也并不是完全不需要中心服务器,不然P和P一开始都不知道对方,也无从谈链接了。所以这里还会有一个以上的中继服务器的存在,中继服务器的作用之一就是帮助每个对等端建立开始时的链接,之后的通讯它们自己完成就可以。[而理论上中继服务器越多,整个业务系统也会更完善,这也预示着需要鼓励一些对等端成为中继,而这个问题则衍生了”共识机制”。虚拟**的解决方案就是矿工,用挖矿来激励更多端作为中继。]

2. 不可逆加密

      加密技术在目前行业里面已经应用的很广泛了,具体的技术细节就不多加赘述。简单来说,加密本质就是把一些人可以直接看懂的数据,利用技术手段使其变为乱码。而目前行业里区块链使用最多的是“SHA-256” 哈希算法,这种非对称加密算法的最大特点就是,加密后的数据无法或者极其困难反向推算出原始数据。(公钥私钥暂时不加赘述)这也导致直接结果是哪怕我自己私钥加密的数据,我也无法把加密后的数据进行反向推算。这种加密方式虽然说是“数据加密”,而且常识情况下人们也容易理解成你的数据加密后让别人无法看,但千万记住其实你自己其实也无法看。但它的价值就是在当下技术瓶颈下会非常安全,而作为持有公钥和私钥的你,就相当有了唯一的凭据,来证明这个数据是你的。

      加密后,不可逆的特性也引申出了区块链是一种 “信任链”的概念。目前国内我们不知不觉的产业和业务都根据这一特性进行着改革。更多内容可以看中科院的相关文献。[上面还有量子通信、数字孪生、汽车行业等等相关行业技术发展的白皮书]

中国信通院:2022年区块链白皮书
随着数字经济时代到来,区块链与其他新一代信息技术交叉融合,其 信任价值将被进一步激发,通过充分融合公有链与联盟链技术优势, 为信任科技积蓄能量。信任科技以区块链等多技术融合为核心,着力 打造数字化信任基础设施。其既是数字经济新时代对于数据要素全流 程可信管理的必然要求,也是 Web3.0 发展中解决互联网数据要素权 属和交易流通问题的重要创新。

3. 共识机制

      共识机制是整个区块链里面最不算技术的技术方案了,但又是最最重要的内容,涉及到你的区块链要怎么改造?区块链是否真的能帮助你的业务或产业等问题。当然,说它不是技术,是因为本身共识机制是结合社会学、人性、责任、惩戒、激励等等和人相关的内容,更像是一系列的运营规则。(当然也并不只局限于人,机器和机器也可以,技术只是工具)

      讲一下共识机制,得再次着重声明下“共识”,共识是指达成一个各个分歧方所接受的解决方案(即使有时只是勉强接受,甚至只是搁置争议),而共识机制即这个方案的规则,当这个规则达成一致,会让本来混乱无章的系统更加稳定平衡且向上发展,这种机制我们生活中随处可以,公司考勤机制、城市管理规章、王者荣耀的铭文机制、交通红绿灯… 都是共识机制,且我们都默许并遵守着。由于目前行业没有较好且资料很多的区块链应用可以参考,我们可以先以虚拟**的共识机制进行讨论。

      在说明虚拟的共识机制之前,得科普一个技术要素,那就是任何互联网产品,无论怎么更新迭代,都不能没有 网络通讯和数据库两个最基础的东西。而虚拟是以去中心服务器和P2P网络通讯的方式运行的互联网产品,那数据库保存在哪里很重要,但它又没有中心服务器,那只能选择保存在用户的终端上,那选择谁去保存呢?如果谁都可以随便随时无成本的保存,那它只需要购买N个服务器然后保存,就可以保存80%的数据,那最终裁决权就归属这个人了,这打破了平等的规则,肯定不行。这个时候这就引申出了矿工这一用户群体,行业里面说的质押、挖矿、工作量证明Pow、权益证明Pos其实就是通过不同的机制筛选出一些用户的终端,作为数据库的作用,用一定的成本来为区块链打工,并且换取更多的激励,并且还有其他的机制,比如如何证明谁的区块之间哪个是最新的,是正确的,谁付出的更多,如何解决区块的冲突等问题,也有着相应的机制。

      上述我们参考了虚拟的共识机制,可以看出 机制就是碰到一个阻挡目标的问题而衍生出的解决方案,每个程序里面都有的自己的机制。但还有最重要的“共识”,因为你必须让参与解决方案的所有方认同并且依照这个规则,且也无法打破,才能更好的维护整个区块。办法也很简单,虚拟的方式就是加密和计算机程序来判决,而不是人去控制和判定。所以你的产业或者业务机制如果需要区块链来改进,那首先需要看本身业务的规则和规律是否稳定统一,并且可以用技术的方式去自动化。

我在创建这个博客的时候,ChatGPT 已经到了第四版本了,我有幸之前也参与过机器学习的项目,并且也在研究Unity的ML-Agents。结合区块链,感觉未来区块链结合AI一定是最强搭档,AI如果充当区块链共识机制检察长,在机制和共识两个方面都会有质的改进。

4. 分布式储存

      上文说到互联网产品无法避免的两大基础要素,网络和数据库。由于P2P的网络结构把网络通讯99%的对接直接交给了每个对等端自己,那没有中心服务器,数据在哪里保存就是个问题了。这就对应了分布式储存,其实就是既然对等端自己对接,那数据它们来保存吧。

      而保存数据需要的条件和要求不同,就延伸出了不同的区块链(联盟链、私有链、公链、 作侧链),其实它们主要区别就是保存数据的人/组织是谁有多少。但公链是最早由虚拟**引申出来的,但那时候这种颠覆传统的网络模式的改变,在利益的驱使下被赋予了敏感意义“去中心化”,因为公链就是所有人都有可以保存数据,在某些领域没有监管和高纬度的制度,这带来的只是另一种混乱。

      那在讲区块链这种分布式储存架构之前,就得提到“集中式”和“分布式”概念,无论是系统和组织,都会面对集中式在系统扩张到一定规模后无法适应,分布式在又存在管理和成本的问题,系统小的时候无法支持。对于整体系统,集中式在前期易于管理,可以产生更好更快速的同步,并且很少会有子系统之间信息的矛盾和丢失,但劣势也很明显,在体量大到一定程度,事务的量和复杂度成指数提升,就会加重整体系统的负担,影响主系统的决策质量,且整体再去调整和整顿会有较大成本,子系统的均衡性(积极主动)也会减弱,慢慢的会导致整体系统缺乏外部环境的适应能力。而分布式呢,通常都是有了一定体积之后采取的扩张途径,太早期的话浪费成本又不会有太大价值,容易导致效率延缓,特别是前期不稳定的情况下容易无法凝聚,但体量大了之后就会形成稳固的规范规则,在这种规则规范下相对集中式会有效提高子系统参与和均衡,并且对于局部不断变化的需求很是有利,同时减轻了主系统的负担,使其精力更集中于重大事务的决策和处理。

      所以长远来看,分布式有着它独有的价值,但代价也很明显,成本很高。就服务器和数据库来说,采用这种结构的都是大厂。而区块链恰恰是一种低成本的分布式解决方案,职责分散平等了,对应的成本也相应分散了,并且由于其透明公开、无法伪造的安全前提,更有助中心系统去观察和管理,最终会更方便有效的帮助整体业务的流通和运营。

      当然虚拟**由于其那方便的特性,他只能作为公链才能得以被大众认同,但社会上其他业务和行业不同,可以根据区块链几大特点,可做拆解也可做加减 ,取能对自己有价值的即可。




四. 未来遐想 [头脑风暴区] 🧠


区块链未来趋势的展望

-XXXXX-




一. 项目状态说明⛳️


1. 徽章

      如果本项目对您的工作有着帮助,非常希望你能把这个徽章加入你的项目说明页面中。放心,此项目完全开源,在你的项目说明中加入此徽章,只是方便其他人访问到这个项目并也能使用到 Arouse Blockchain,这对于国内的开发环境有着积极的影响,也会促进更多独立开发者有更强劲的动力做出好的项目。 ⚠️加入徽章并非强制的。
Arouse徽章

加入徽章到 Markdown 文本里面,可以使用以下代码:

[![Arouse区块链徽章](https://img-blog.csdnimg.cn/8cef8d1ca11a4151897a7ff54c87fcb6.jpeg =180x)](https://github.com/RichardLitt/standard-readme)

2. 相关仓库

  • UbudKusCoin — 💌 使用C#进行区块链编程的教程,给予了本项目很大的启发。此文没有针对编程有过多的教学,这个仓库可以弥补,对于技术人员有很大帮助。

3. 如何贡献❤️🌟

非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。

标准 Readme 遵循 Contributor Covenant 行为规范。

贡献者

感谢以下参与项目的人:

4. 使用许可

MIT © Richard Littauer


http://wed.xjx100/news/301237.html

相关文章

表级锁和行级锁

介绍 为什么有事务隔离性?因为要并发执行,数据安全性和一致性和并发效率问题 串行化:锁实现,没有并发性 用的多的是可重复读(mysql)和已提交读(oracle),因为权衡了数据…

5、共享模型之内存

目录 5.1 Java的内存模型5.2 可见性1、退不出的循环2、解决办法:3、可见性 vs 原子性 5.3 有序性1、为什么会有指令重排2、如何禁止指令重排3、原理之volatile4、happens-before 5.1 Java的内存模型 JMM 即 Java Memory Model(Java内存模型)…

控制并发流程,做好线程间的协调

一、概述 1. 什么是控制并发流程? 线程一般是由线程调度器自动控制的,但有些场景需要按照我们程序员的意愿去实现多线程之间相互配合,从而满足业务逻辑。比如: 让线程A等待线程B执行完后再执行等一些相互合作的逻辑&#xff1b…

MP : Human Motion 人体运动的MLP方法

Back to MLP: A Simple Baseline for Human Motion Prediction conda install -c conda-forge easydict 简介 papercodehttps://arxiv.org/abs/2207.01567v2https://github.com/dulucas/siMLPe Back to MLP是一个仅使用MLP的新baseline,效果SOTA。本文解决了人类运动预测的问…

通过构造方法使属性初始化

1 问题 如何使属性初始化。 2 方法 在Student类中定义两个构造方法publicStudent(String name)和public Student(String name,int score)。在使用new运算符创建对象,由于实际参数是一个String类型的数据"林冲",因此在实例化时会调用有一个Stri…

使用CloudOS帮助企业落地云原生PaaS平台

PaaS究竟是什么? IaaS、SaaS的定义很清楚,而PaaS的定义就比较宽泛。所以,很多人把PaaS当做一个万能的“框”,什么都往里装,特别像一排垃圾桶中的那个“其他垃圾”桶,当你拎了一袋垃圾,不知道往…

Vue中如何进行颜色选择与调色板

Vue中如何进行颜色选择与调色板 颜色选择和调色板是Web开发中常用的功能,它们可以帮助用户选择或调整颜色。Vue作为一个流行的JavaScript框架,提供了一些工具和库,可以方便地实现颜色选择和调色板功能。本文将介绍如何在Vue中进行颜色选择和…

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议 一、RIP协议概念 RIP是Routing Information Protocol缩写,又称为路由信息协议,是最先得到应用的内部网关协议,RIP作为一个常在小型互联网中使用的路由信息协议…