当前位置: 首页 > news >正文

DAPP

02-DAPP

1 啥是 DApp?

DApp,部署在链上的去中心化的应用。

DApp 是开放源代码,能运行在分布式网络上,通过网络中不同对等节点相互通信进行去中心化操作的应用。

DAPP 开放源代码,才能获得人的信任。如比特币,尽管很多人没读过比特币源码,但仍不影响这些人相信并持有比特币,就是因为比特币是开源的,如有问题肯定会被发现。

去中心化应用肯定是分布式的应用,因为无中心节点,须能在节点之间进行通信,每一个去中心化应用都有自己的通信协议,使用相同协议的节点共同组成一个去中心化应用的网络。

优点

DApp是分布式的应用,所以不存在单点故障,一个节点或几个节点坏了完全不影响DApp的正常运行。

因为数据是分布式的,所以数据很难完全删除,数据不会像中心化应用那样因为中心节点故障或其他原因而造成数据丢失。

DApp也比中心化应用更值得信任,因为 DApp 使用共识算法保证数据不可篡改,而中心化服务的数据不可篡改依赖于对中心节点的信任,也就是对服务提供者的信任,如使用网银转账,是建立在对银行信任的基础。

2 DApp的存在的问题

DApp节点分布在网络中,因此DApp的数据不会被轻易修改,辩证地看,也就让DApp升级困难。

DApp 保证了用户的匿名性,那么通常带来问题就是用户身份的验证困难,同样,因为DApp的安全性高,就存在DApp系统更加复杂的问题。

DApp的去中心化,导致DApp不能依赖已中心化的服务,那么生态的建立是非常缓慢的。

3 DAPP网络组建过程

万维网(WWW)就是指通过HTTP协议连接的网络。HTTP协议应用是一个典型的中心化应用,必须要有服务提供者,服务提供者就是一个中心节点,所有其他的用户通过服务提供者交互。

DAPP不是中心化的应用,仅用HTTP协议显然不够。以二手交易中的买家和卖家为例,在DApp中一个卖家如何找到一个买家呢?使用 HTTP 的 Web 应用,买家和卖家都可通过域名服务找到中心节点的二手交易平台,但去中心化应用咋解决发现其他的节点?

DAPP需实现一个新的协议来发现运行 DApp客户端的节点,假设我们已有相互发现节点的协议,那DAPP组网的过程就清晰了。

首先开发DAPP,运行DAPP成为一个DAPP的节点,DAPP通过协议发现其他节点,这些节点共同组成一个DAPP网络,例如比特币主网、比特币测试网络、以太坊主网和以太坊测试网等。

4 DAPP 与智能合约

以太坊中一般认为智能合约就是DAPP,更准确的可认为智能合约相当于服务器后台,另外要实现用户体 验,还需要UI交互界面。

那DAPP就是包含完整的智能合约+用户UI交互界面。

区块链相对于DAPP来说是应用运行的底层环境。简单的可类比IOS,Android等手机操作系统于运行与之上的各种App。

一个完全的DAPP是需要满足完全开源并且是自治的应用程序。DAPP一经部署完毕,便不可更改,应用的升级必须由大部分用户达成共识后,才可进行升级。

所有的数据必须进行加密存储在去中心化的区块链应用平台上。其次DAPP必须要有token机制。区块链DAPP能够进行容错。它们没有中心化的机构能够进行干扰,不会出现某些数据的删除或者修改。甚至不能被关闭。

获取更多干货内容,记得关注我哦。

本文由 mdnice 多平台发布

相关文章:

DAPP

02-DAPP 1 啥是 DApp? DApp,部署在链上的去中心化的应用。 DApp 是开放源代码,能运行在分布式网络上,通过网络中不同对等节点相互通信进行去中心化操作的应用。 DAPP 开放源代码,才能获得人的信任。如比特币&#xff…...

生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢

生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢 关键参数计算方法评估步骤总结 在生产环境中,Nginx最多可以代理的服务器数量并没有一个固定的限制,它取决于多个因素,包括Ng…...

【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)

StrongSort详解 1、论文及源码2、DeepSORT回顾3、StrongSORT的EMA4、StrongSORT的NSA Kalman5、StrongSORT的MC6、StrongSORT的BOT特征提取器7、StrongSORT的AFLink8、StrongSORT的GSI模块 1、论文及源码 论文地址:https://arxiv.org/pdf/2202.13514 源码地址&#…...

23种设计模式-原型(Prototype)设计模式

文章目录 一.什么是原型设计模式?二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图: 原型设计模式类图 一.什么是原型设计模式? 原型模式(Prototype…...

Qt—QLineEdit 使用总结

文章参考:Qt—QLineEdit 使用总结 一、简述 QLineEdit是一个单行文本编辑控件。 使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。 通过改变 QLineEdit 的 echoMode() ,可以设置其属性,比如以密码的形式输入。 文本的长度可以由 m…...

go-zero使用自定义模板实现统一格式的 body 响应

前提 go环境的配置、goctl的安装、go-zero的基本使用默认都会 需求 go-zero框架中,默认使用goctl命令生成的代码并没有统一响应格式,现在使用自定义模板实现统一响应格式: {"code": 0,"msg": "OK","d…...

BUGKU printf

整体思路 实现循环-->获取libc版本和system函数地址->将strcpy的got表项修改为system并获得shell 第一步:实现循环 从汇编语句可以看出,在每次循环结束时若0x201700处的值是否大于1则会继续循环。 encode1会将编码后的结果保存至0x2015c0处&am…...

深度学习:梯度下降法

损失函数 L:衡量单一训练样例的效果。 成本函数 J:用于衡量 w 和 b 的效果。 如何使用梯度下降法来训练或学习训练集上的参数w和b ? 成本函数J是参数w和b的函数,它被定义为平均值; 损失函数L可以衡量你的算法效果&a…...

`console.log`调试完全指南

大家好,这里是 Geek技术前线。 今天我们来探讨 Console.log() 的一些优点。并分析一些基本概念和实践,这些可以让我们的调试工作变得更加高效。 理解前端 log 与后端 log 的区别 前端 log 与后端 log 有着显著的不同,理解这一点至关重要。…...

ROS VSCode调试方法

VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…...

16 —— Webpack多页面打包

需求&#xff1a;把 黑马头条登陆页面-内容页面 一起引入打包使用 步骤&#xff1a; 准备源码&#xff08;html、css、js&#xff09;放入相应位置&#xff0c;并改用模块化语法导出 原始content.html代码 <!DOCTYPE html> <html lang"en"><head&…...

微服务即时通讯系统的实现(服务端)----(3)

目录 1. 消息存储子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 数据管理1.4.1 数据库消息管理1.4.2 ES文本消息管理 1.5 接口的实现1.5.1 消息存储子服务所用到的protobuf接口实现1.5.2 最近N条消息获取接口实现1.5.3 指定时间段消息搜索接口实现1.5.4 关键字消…...

.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)

说一下情况&#xff1a; 代码没问题&#xff0c;能成功从数据库里查到数据&#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值&#xff0c;但是发布到线上后报这个错&#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...

VUE 入门级教程:开启 Vue.js 编程之旅

一、Vue.js 简介 Vue.js 是一套构建用户界面的渐进式 JavaScript 框架。它专注于视图层的开发&#xff0c;能够轻松地与其他库或现有项目进行整合。Vue.js 的核心库只关注视图层&#xff0c;通过简洁的 API 实现数据绑定和 DOM 操作的响应式更新&#xff0c;让开发者可以高效地…...

Ubantu系统docker运行成功拉取失败【成功解决】

解决docker运行成功拉取失败 失败报错 skysky-Legion-Y7000-IRX9:~$ docker run hello-world docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial uni…...

mvn-mac操作小记

1.安装brew 如果报错&#xff0c;Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc&#xff0c;最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…...

机器学习——生成对抗网络(GANs):原理、进展与应用前景分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一. 生成对抗网络的基本原理二. 使用步骤2.1 对抗性训练2.2 损失函数 三. GAN的变种和进展四. 生成对抗网络的应用五. 持续挑战与未来发展方向六. 小结 前言 生…...

「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏

本篇将带你实现一个简单的数字猜谜游戏。用户输入一个数字&#xff0c;应用会判断是否接近目标数字&#xff0c;并提供提示“高一点”或“低一点”&#xff0c;直到用户猜中目标数字。这个小游戏结合状态管理和用户交互&#xff0c;是一个入门级的互动应用示例。 关键词 UI互…...

Ps:存储 Adobe PDF

在 Adobe Photoshop 中&#xff0c;将图像保存为 PDF 文件时&#xff0c; 会弹出“存储 Adobe PDF” Save Adobe PDF对话框。在此对话框中提供了多个选项&#xff0c;用于控制 PDF 文件的输出&#xff0c;包括一般设置&#xff08;选择预设、兼容性和保留编辑功能&#xff09;、…...

DDR3保姆级使用教程:ZYNQ 7010

内容:使用DDR3 IP核&#xff0c;向DDR3写入数据&#xff0c;然后再读出数据&#xff0c;通过串口打印。 设备&#xff1a;ZYNQ 7010 xc7z010clg-400-1。软件VIVADO 2018.3 &#xff08;1&#xff09;工程模块&#xff1a;一个写FIFO&#xff0c;一个读FIFO。一个ZYNQ IP核&am…...

如何用PortProxyGUI简化Windows端口转发配置

如何用PortProxyGUI简化Windows端口转发配置 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI PortProxyGUI是一款专为Window…...

AI 开发实战:需求变更后,如何让 AI 自动补回归范围

AI 开发实战&#xff1a;需求变更后&#xff0c;如何让 AI 自动补回归范围 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“需求变更后&#xff0c;如何让 AI 自…...

终极指南:5分钟学会免费修复Minecraft损坏存档的强力工具

终极指南&#xff1a;5分钟学会免费修复Minecraft损坏存档的强力工具 【免费下载链接】Minecraft-Region-Fixer Python script to fix some of the problems of the Minecraft save files (region files, *.mca). 项目地址: https://gitcode.com/gh_mirrors/mi/Minecraft-Reg…...

盘点那些提高作物耐盐性的方法(一)

本文内容速览&#xff1a;随着全球气候变化加剧和不合理灌溉的持续影响&#xff0c;土壤次生盐渍化问题日益突出&#xff0c;许多地区的耕地盐碱化程度不断加重。传统手段在应对作物的高盐胁迫时逐渐显现出效果上限——部分作物的耐盐性改良已进入平台期&#xff0c;单纯依靠农…...

别再只盯着标定板了!用ROS camera_calibration搞定海康工业相机,这5个细节决定成败

工业相机标定进阶指南&#xff1a;ROS camera_calibration的五个关键优化点 工业相机的标定质量直接决定了机器视觉系统的测量精度。许多开发者虽然能够完成基础标定流程&#xff0c;却常常在参数解读和精度优化环节遇到瓶颈。本文将深入解析ROS camera_calibration工具在实际工…...

从课程设计到实际应用:聊聊51单片机倒车雷达项目的那些优化点

从课程设计到实际应用&#xff1a;51单片机倒车雷达项目的工业级优化指南 当你完成了一个能测距、能报警的51单片机倒车雷达课程设计后&#xff0c;是否思考过这个"玩具级"项目与真正车载产品的差距&#xff1f;本文将带你跨越这道鸿沟&#xff0c;从精度、可靠性、功…...

Vision Transformers在密集预测任务中的创新应用与性能优化

1. Vision Transformers如何革新密集预测任务 第一次接触Vision Transformers&#xff08;ViT&#xff09;时&#xff0c;我完全被它的设计哲学震撼到了。传统的CNN在处理图像时&#xff0c;就像用固定大小的网格去观察世界&#xff0c;而ViT则像是一个拥有"全局视野"…...

3步掌握Open Props:从环境搭建到高级应用

3步掌握Open Props&#xff1a;从环境搭建到高级应用 【免费下载链接】open-props CSS custom properties to help accelerate adaptive and consistent design. 项目地址: https://gitcode.com/gh_mirrors/op/open-props Open Props是一个功能强大的CSS变量库&#xff…...

蓝牙天线匹配避坑指南:从VNA测试到π型电路焊接的5个关键步骤

蓝牙天线匹配避坑指南&#xff1a;从VNA测试到π型电路焊接的5个关键步骤 在消费电子领域&#xff0c;2.4GHz蓝牙天线的性能直接决定了产品的无线连接质量。许多硬件团队在开发过程中常遇到信号不稳定、传输距离短等问题&#xff0c;其核心往往在于天线阻抗匹配的细节处理不当。…...

Uvicorn与Packet.net:高性能服务器部署Python服务的完整指南

Uvicorn与Packet.net&#xff1a;高性能服务器部署Python服务的完整指南 【免费下载链接】uvicorn An ASGI web server, for Python. &#x1f984; 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn是一个专为Python设计的ASGI Web服务器&#xff0c…...