点击上方“蓝色字体”,选择 “设为星标”

关键讯息,D1时间送达!

很多架构师在使用区块链技术之前需要考虑一些关键问题,而这些问题与数据隐私和区块链类型有关。

公共区块链通过提供数据的透明度、完整性、可追踪性、真实性来协调信任层。它可以记录所有交易活动。这些独特的属性吸引了许多企业来开发应用程序,这些应用程序记录利益相关者之间的透明活动、提供来源可追溯性的所有权详细信息、证明存在的数字内容的时间戳等等。Aion基金会首席执行官Matt Spoke强调了公共区块链是一条很好的前进道路的原因。

尽管区块链存储是开放和可访问的,但在这种状态下执行的每一个写操作都会产生成本。因此,必须将应用程序的主要部分托管在区块链上,以最大程度地降低成本。需要构建应用程序的其余部分来解决以下问题:

两个关键问题

(1)需要在区块链中存储哪些数据?

公共区块链上的任何数据都是开放的、访问的且不可撤销的。因此,除非数据已使用抗量子算法编码并存储,否则公共区块链不符合GDPR(以及CCPA)法规的标准。

个人身份信息(PII)或危及用户隐私的敏感数据不应存储在区块链上。但是,区块链仍然需要账户地址才能将其与真实用户单独链接(在区块链上可以是伪匿名的)。

(2)在哪个区块链上构建应用程序?

软件的性能直接取决于其依赖项及其主机环境的性能。区块链带来了一种去中心化架构的新模式,其中链上的每个节点不断更新以维护状态。除此之外,区块链应用程序还需要处理各种问题及其实现。

共识

区块链依赖于参与者节点的分布式共识。与任何权益证明(PoS)系统相比,工作量证明(PoW)共识需要花费更多时间才能在基于最终水印的系统上达成共识。同样,其他变体共识算法也会影响交易确认时间,应用程序需要在不牺牲响应时间的情况下进行处理。

智能合约

公共区块链智能合约方法是开放的,无论什么样的用户都可以调用。因此,智能合约需要确保其数据不被破坏,并防止滥用其业务逻辑。开发安全有效的智能合约需要高超的技能,并需要大量的实践。此外,基于这种智能合约的复杂性和监控影响,它需要与外部组织进行安全审核。

区块产生时间和交易数量

区块的产生时间和可以合并到一个区块中的最大交易数决定了系统的吞吐量。该应用程序理论上可以生成许多交易,但是这些交易仍需要与区块链上的其他应用程序一起完成。例如,以太坊当前每秒处理15个交易。

访问区块链

尽管区块链是开放和可消耗的,但需要可靠的连接才能使用完整的节点或第三方等选项(例如Infura、Blockdaemon、Nodesmith等)与其通信。完整节点保证最新的区块链状态。然而,它很难管理(特别是在维护和升级方面),而且不具有成本效益。

如果企业选择第三方服务,它将引入额外的依赖性,其内部工作原理是将交易交付到区块链、交易池管理、重试策略和重置策略。

天然气成本和价格

以电网为例,与区块链上执行交易相关的天然气价格根据电网的需求和供应而波动。基础电网加密货币价格也会对其产生影响。根据应用程序的使用模式,明智的做法是估算未来三到五年内运行该系统的天然气成本预算,而在价格较低时提前购买天然气将有助于降低成本。

工具与支持

最后但并非最不重要的一点是对区块链生态系统的工具支持,因为它在开发、部署、调试和监视智能合约时起着至关重要的作用。在需要时获得技术支持会带来很多不同工具。

处理区块链的复杂性

墨菲定律在理想世界中是无效的,但实际上出了问题,人们需要为可能出现的最坏情况制定计划。其中一些问题是可以解决的,但是应用程序仍然需要处理来自区块链复杂性的挑战。

区块链无法处理的交易

如今,许多应用程序都会产生大量的微交易,以记录每一个小细节。区块链尚未达到这一级别的可扩展性,但是,它不应阻止人们在其之上构建应用程序。这可以通过汇总交易(如果逻辑上可行)并减少区块链上的交易提交来解决。

高吞吐量的另一种选择是使用侧链网络(如果可用),这样可确保将公共区块链收益仍可用于应用程序,同时将部分工作卸载到侧链。

未能实施交易

区块链可能无法提取应用程序提交的交易。这可能是交易本身的问题,也可能与分散网络问题有关(例如,区块链中链的重组、硬分叉、交易池故障等)。该应用程序将在所有情况下通过记住已提交给区块链但未通过的内容来重试。

如果交易失败是由于较低的天然气价格引起的,则应用程序将以较高的天然气价格重新提交交易。否则,它将重试。这对于同步区块链的状态和应用程序的内部状态至关重要。

电网拥塞

应用程序应该具有响应和适应电网拥塞的规定。如果提高天然气价格不起作用,则该应用程序应定期或按指数重试。

电网拥塞采用区块链的好处是,可能无法立即通过其他方式将交易提交到电网。这将减少重复消费的风险。该应用程序可以使用其内部状态继续运行,并在以后以较高的可用天然气价格提交交易。

区块链与内部应用程序状态之间的不一致

如果应用程序是围绕区块链标记技术构建的,则应用程序的非区块链部分将记住尚未确认或提交给区块链的系统状态。

当用户访问应用程序时,可以考虑这些未决的交易。但是,如果他们直接访问区块链浏览器,则余额或状态可能会关闭。如果用户很聪明并且可以访问其私钥,那么他们可以将交易直接发送到应用程序外部的区块链,并耗尽余额或更改状态。

解决此问题的一种方法是在应用程序中实现余额的透支保护,并在交易余额达到一定程度时允许执行交易。第二种方法是为应用程序创建内部账户,以代表用户执行状态更改。

总而言之,构建具有数百万个用户和大量交易的企业区块链应用程序可能不适合常规软件体系结构。因此,架构师需要为新的挑战和未解决的问题做好准备,以解决这种大规模应用问题。

此处未涵盖的重要方面是管理用于在区块链上执行交易的密钥。

版权声明:本文为企业网D1Net编译,转载需注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。

(来源:企业网D1net)

如果您在企业IT、网络、通信行业的某一领域工作,并希望分享观点,欢迎给企业网D1Net投稿 投稿邮箱:editor@d1net.com

点击蓝色字体关注

您还可以搜索公众号“D1net”选择关注D1net旗下的各领域(云计算,数据中心,大数据,CIO, 企业通信 ,企业应用软件,网络数通,信息安全,服务器,存储,AI人工智能,物联网智慧城市等)的子公众号。

企业网D1net已推出企业应用商店(www.enappstore.com),面向企业级软件,SaaS等提供商,提供陈列,点评功能,不参与交易和交付。现可免费入驻,入驻后,可获得在企业网D1net 相应公众号推荐的机会。欢迎入驻。扫描下方“二维”即可注册,注册后读者可以点评,厂商可以免费入

未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题相关推荐

  1. 企业区块链应用程序的两个关键问题

    公共区块链通过提供数据的透明度.完整性.可追踪性.真实性来协调信任层.它可以记录所有交易活动.这些独特的属性吸引了许多企业来开发应用程序,这些应用程序记录利益相关者之间的透明活动.提供来源可追溯性的所 ...

  2. 使用 Python 从零开始开发区块链应用程序

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. "区块链"是什么? 区块链是一种存储数字数据的方式.数据可以是任何内容.对于比特币,它是事务(在帐户 ...

  3. 如何开发一个区块链应用程序

    区块链是一项巧妙的发明,有望使数字世界更加安全和分散.通过允许数字信息的分发而不是复制,区块链技术创建了一种新型互联网.最初是为数字货币比特币而设计的,现在科技界正在寻找该技术的其他潜在用途.在不久的 ...

  4. AI:一个20年程序猿的学习资料大全—区块链/大数据/数据集/云计算/前沿大会资料——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-区块链/大数据/数据集/云计算/前沿大会资料--只有你不想要的,没有你找不到的 目录 区块链 ​​​大数据资料 数据集 云计算资料 前沿大会资料报告​ 相关文章 ...

  5. 区块链软件公司:区块链使用程序如何成为战胜商场应战的垫脚石

    区块链技能在现代已经得到了很大的宣传和普及,但企业家和营销主管们对这一新技能依然优柔寡断.要么他们不知道这项技能的优点,要么他们依然在寻觅可以解决现实或未来矛盾的详细的区块链使用程序.永恒性,这一技能 ...

  6. 阿里云国际版服务器如何搭建区块链应用程序

    什么是区块链? 区块链是网络上计算机之间的共享数据库,可确保所有参与者验证所有执行的交易. 区块链网络的参与者维护数据库的副本,使信息透明,并且在任何给定时间对网络上的每个人都可用. 区块链技术众所周 ...

  7. computehash在php怎么实现,卓象程序员:PHP实现基础区块链

    原标题:卓象程序员:PHP实现基础区块链 一.引言 什么是区块链?官方的解释是:区块链是一个分布式记账系统,是藉用密码学串接并保护其内容的串连交易记录(又称区块).每一个区块包含了前一个区块的加密散列 ...

  8. 一线程序员带你实践学习企业实战C/C++程序员课程

    作者吴从周 资源简介: 传统的C/C++的教材和课程都属于学院派,只是单纯的讲一些知识点,却没有讲到实际开发中我们常用的知识点有哪些,本课程将打破传统的弊端,一线程序员将带你实践学习企业实战项目中LI ...

  9. 走进区块链(一):用Python实现第一个区块链小程序

    源代码链接:https://github.com/dvf/blockchain 大家好!这是本人踩在巨人的肩膀上,实现的第一个区块链小程序.在实现代码的过程中,我遇到了很多问题,不过,幸好都解决了.在 ...

最新文章

  1. 2021年需要学习Python的自动化测试框架有哪些?你知道吗?
  2. EGL接口介绍-----Android OpenGL ES底层开发
  3. 谷歌和伯克利分校的新工作:规模化大场景的神经绘制方法Block-NeRF
  4. 深度:应用安全是信息安全防护的短板
  5. Akka入门(一)Akka简介与为什么使用Akka
  6. 洛谷 P1219 八皇后题解
  7. html解释json,json 解析
  8. CSS3---渲染属性
  9. 从零开始编译LEDE固件 默认中文material主题_php_sir_新浪博客
  10. P3174 [HAOI2009] 毛毛虫(树形DP)
  11. 高斯混合模型(GMM),c++实现
  12. Typo3 CVE201912747 反序列化漏洞分析
  13. 关于java中method.invoked 传入类型不一样的问题
  14. Swiper.js实现无缝滚动
  15. 为什么网上都说 AirPods 3 音质不如AirPods Pro?
  16. git cherry-pick 多分支的代码库,将代码从一个分支转移到另一个分支
  17. java word模版填充_Java 数据填充到word模板中
  18. 黑客们的往事(连载十) 凯文·米特尼克
  19. 我为什么不喜欢用异或做两数值的交换
  20. 自考计算机大专多久毕业证,自考大专要多久才可以拿到毕业证?

热门文章

  1. webServices 应该支持Get和Post调用,在web.config应该增加以下代码
  2. SharePoint 2013 关于自定义显示列表表单的bug
  3. JAVA-用栈机制实现单词逆序排列
  4. Android开发中目前流行控件和知识点总结
  5. (相当全面)node.js 初体验
  6. 4.1.1网络层功能概述
  7. PyTorch 之 requires_grad,requires_grad_(),grad_fn
  8. Tensorflow深度学习应用(进阶篇)
  9. 动态规划--Leetcode64.最小路径和
  10. 计算机科学与技术专业改革,浅析计算机科学与技术专业教学改革