当前位置: 首页 > 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…...

HSTracker:精准追踪炉石传说对战数据的macOS智能辅助工具

HSTracker&#xff1a;精准追踪炉石传说对战数据的macOS智能辅助工具 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker HSTracker是一款专为macOS平台设计的开源炉石传说辅…...

零基础入门:时空预测的系统化学习笔记

零基础入门&#xff1a;时空预测的系统化学习笔记 很多刚接触时序与时空预测领域的朋友&#xff0c;常常会陷入两个极端&#xff1a;要么一上来就硬啃复杂的 SOTA 模型&#xff0c;连基础算子都没搞懂就想复现顶会成果&#xff0c;最后处处碰壁&#xff1b;要么只停留在基础概…...

OpenMemories-Tweak完整指南:如何安全解锁索尼相机的隐藏功能

OpenMemories-Tweak完整指南&#xff1a;如何安全解锁索尼相机的隐藏功能 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak OpenMemories-Tweak是一款专为索尼相机设计的开源解…...

智能客服方案库物流JSON格式优化:从数据冗余到高效解析

在智能客服系统中&#xff0c;物流信息的查询与展示是高频核心功能。随着业务增长&#xff0c;我们方案库中存储和传输的物流JSON数据日益庞大。最初为了图省事&#xff0c;我们采用了“全量字段”的设计&#xff0c;即每次接口返回都包含物流单号、状态、时间、承运商、路由节…...

3个关键步骤掌握BetaFlight黑匣子日志分析:从新手到专家

3个关键步骤掌握BetaFlight黑匣子日志分析&#xff1a;从新手到专家 【免费下载链接】blackbox-log-viewer Interactive log viewer for flight logs recorded with blackbox 项目地址: https://gitcode.com/gh_mirrors/bl/blackbox-log-viewer BetaFlight Blackbox Log…...

具身智能:千亿赛道崛起、多元场景落地与数据标注协同发展

2025被称为“具身智能元年”&#xff01; “具身智能” 也首次被写入中国《政府工作报告》&#xff0c;纳入国家战略规划&#xff0c;各地密集出台专项政策布局赛道。 数据标注作为具身智能涌现的核心基石&#xff0c;也同步完成了从劳动密集型向高技术专业化的范式升级。 具…...

# 数据仓库分层设计指南

从 0 搭建企业级数仓架构&#xff0c;ODS/DWD/DWS/ADS 分层详解&#x1f4cc; 前言 为什么你的 SQL 越来越难维护&#xff1f; 为什么每次加需求都要改一堆表&#xff1f; 为什么数据口径对不上&#xff1f; 根本原因&#xff1a;没有分层设计&#xff01; 这篇文章带你从零设计…...

如何选择最适合的开源付费墙绕过工具?5款热门方案深度测评

如何选择最适合的开源付费墙绕过工具&#xff1f;5款热门方案深度测评 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容付费阅读日益普及的今天&#xff0c;开源工具为用户提…...

神经网络实战之dsp实现神经网络vad-1

vad神经网络有很多不同的实现&#xff0c;这里的神经网络是基于pytorch实现的&#xff0c;网络结构如下&#xff1a; class MiniVAD(nn.Module):def __init__(self, n_fft512):super().__init__()self.input48 #输入B T 48# 融合层self.fusion nn.Sequential(nn.Linear(self.i…...

Keil5实战:手把手教你制作自定义FLM插件(附完整驱动配置)

Keil5实战&#xff1a;手把手教你制作自定义FLM插件&#xff08;附完整驱动配置&#xff09; 在嵌入式开发领域&#xff0c;Flash编程算法&#xff08;FLM&#xff09;是连接开发环境与目标芯片闪存的重要桥梁。当我们需要支持非标准闪存芯片或特殊外设接口时&#xff0c;自定义…...