5分钟搞懂Web3架构

news2024/11/20 3:25:44

Web3通过区块链基础设施管理用户数据,重构了用户和互联网平台之间的关系,定义了全新的构建互联网应用的架构模式。原文: Web3 Architecture

Shubham Dhage@Unsplash
Shubham Dhage@Unsplash

Web 1.0 = 只读网站,如Yahoo!, MSN,谷歌等。

Web 2.0 = 可读+可写的网站,用户之间可以互动,但互联网平台仍然控制着用户数据和信息,如Facebook, Twitter, Youtube, Blogger, Amazon, Wikipedia, Flickr等。

Web 3.0 = 可读+可写+拥有。用户和互联网平台是独立存在的,可以拒绝填写身份信息,不需要同意任何隐私协议。用户可以通过数字密钥或钱包登录任何平台。


Web2基础架构
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
  • 前端代码 = 定义交互逻辑
  • 后端代码 = 定义处理请求的业务逻辑
  • 数据库 = 存储所有数据
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
  • 客户端->服务端->数据库->服务端->客户端
  • 然而,真正的过程可能比较复杂,涉及缓存、队列等

Web3基础架构
  • 前端保持与Web2应用程序相同
  • 只改变后端
  • 前端与底层区块链网络交互
  • 交互层发起事务并写入数据,在链上索引并读取数据
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
图片来源: https://blog.itsrakesh.co/web-20-architecture-vs-web-30-architecture
  • 基于协议构建dApp
  • 区块链协议和智能合约取代特定业务逻辑的后端代码
  • 前端代码直接与区块链网络交互
  • 智能合约 = 定义业务逻辑
  • 以太坊虚拟机 = 在不同操作环境下,按照相同的业务逻辑进行数据计算和处理
  • 区块链 = 数据被打包成块,永久存储在链上
  • 前端->智能合约->EVM->区块链->前端
  • 节点是应用程序和区块链网络之间的关键
  • 两种主流实现方式:
    1. 自己构建和运行节点
    2. 使用第三方提供的节点服务
  • 在Web2中,身份信息存储在平台上
  • 在Web3中,身份信息基于公钥和私钥。钱包(Metamask)被用作访问任何web3应用程序的接口。
  • 星际文件系统(IPFS, Interplanetary File System) - 一种网络传输协议,旨在创建持久和分布式存储以及共享文件,也是一个点对点超媒体分发协议。
  • Swarm是一种去中心化的存储、服务和通信协议,为dApp的部署提供无许可、抗审查的基础设施。
  • 由于数据被打包在每个块中并链接在一起,因此是一个链表结构。解码需要处理链上的加密数据。API用于查询和索引数据。
  • 除此之外,web服务用于提供一些特效以及其他业务逻辑并返回给前端。
图片来源: https://cointelegraph.com/news/the-future-of-the-internet-inside-the-race-for-web3-s-infrastructure
图片来源: https://cointelegraph.com/news/the-future-of-the-internet-inside-the-race-for-web3-s-infrastructure

Web3技术栈
  1. Solidity
  2. Subgraph
  3. Price Oracle
  4. Hardhat
  5. Ganache
  6. Truffle
  7. Brownie
  8. Ethers.js
  9. Light
  10. React.js
  11. Next.js

Web3是一个令人兴奋的机会,可以远离传统的软件开发环境尝试一些新东西。


参考资料

The future of the internet: Inside the race for Web3's infrastructure

The Architecture of a Web 3.0 application

Decoding Ethereum smart contract data

Ethereum Blockchain App using Ganache

Web 2.0 app architecture Vs Web 3.0 app architecture

Remix - Ethereum IDE & Community


你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。
微信公众号:DeepNoMind

- END -

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1120313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式:代理模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

简介: 代理模式,它是一种结构型设计模式,它通过引入一个代理对象来控制对原始对象的访问。代理模式的主要目的是在保持原始对象完整性的同时,提供对原始对象的访问和控制。 代理模式包括以下三个角色: 抽象主题类&a…

EtherCAT主站SDO写报文抓包分析

0 工具准备 1.EtherCAT主站 2.EtherCAT从站(本文使用步进电机驱动器) 3.Wireshark1 抓包分析 1.1 报文总览 本文设置从站1的对象字典,设置对象字典主索引为0x2000,子索引为0x00,设置值为1500。主站通过发送SDO写报文…

Linux tmux使用总结

文章目录 1 tmux介绍2 tmux概念会话Sessions、窗口Windows、面板Panesstatus line中字段含义 3 Sessions会话管理新建会话断开当前会话进入之前的会话关闭会话查看所有的会话 4 tmux快捷指令系统指令窗口(Windows)指令面板(Panes)…

cec2013(python):麻雀搜索算法SSA求解CEC2013(提供完整python代码及参考文献)

一、麻雀搜索算法SSA求解cec2013 cec2013函数简介 CEC 2013 Special Session on Real-Parameter Optimization中共有28个测试函数维度可选择为10/30/50/100。 每个测试函数的详细信息如下表所示: 参考文献:[1] Liang J J , Qu B Y , Suganthan P N , …

Go并发编程之三

一、前言 前一篇讲了Go中通道的概念,只讲了无缓存通道,这一篇我们来了解一下有缓存通道以及它与无缓存通道一些区别。 二、有缓存通道 无缓存通道:如果通道数据没有被接收,发送方会被阻塞,相当于同步。 有缓存通道&…

Python图像处理【14】基于非线性滤波器的图像去噪

基于非线性滤波器的图像去噪 0. 前言1. min 滤波器2. max 滤波器3. mode 滤波器4. 高斯、中值、mode 和 max 滤波器对比小结系列链接 0. 前言 本节中我们将介绍诸如 max 和 min 之类的非线性滤波器,与中值滤波器一样,它们根据滑动窗口中像素的顺序统计信…

css中px、em、rem、%、vw、vh、vm、rpx 这些单位的区别

序言 px:像素 相对长度单位,相对于显示器屏幕分辨率(推荐使用) em:相对长度单位 基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个…

10个最流行的土木工程BIM软件

建筑信息模型 (BIM) 是一种数字化流程,最近在土木工程领域受到广泛关注。 它是一种设计、构建和管理项目的协作方法。 它涉及创建和使用建筑物的详细数字表示,包括 3D 模型、数据和有关项目的信息。 BIM 在参与项目的不同利益相关者之间提供实时协作&…

【Docker从入门到入土 2】Docker数据管理、网络通信和网络模式 1.0

Part2 一、Docker网络模式(面试高频)1.1 Docker 网络实现原理1.2 host模式1.3 container模式1.4 none模式1.5 bridge模式1.6 自定义网络 二、Docker网络通信2.1 端口映射2.2 容器互联 三、Docker资源控制3.1 Cgroup简介3.2 CPU资源控制3.2.1 设置CPU使用…

JAVA高级教程-Java Map(6)

目录 6、Map的使用 6、Map的使用 package Map01;import java.util.HashMap; import java.util.Map; import java.util.Set;/*** Map接口的使用*/ public class Demo01_HashMap {public static void main(String[] args) {Map<String,String> mapnew HashMap<>();ma…

黔院长 | 不忘初心在逆境中前行!

随着我国经济不断发展进步&#xff0c;以及人口老龄化程度的加深&#xff0c;加上自然环境质量的下降&#xff0c;人们越来越关注和重视自己的健康问题。据世界卫生组织相关数据显示&#xff0c;目前我国的亚健康率已经高达95%&#xff01;健康发展刻不容缓&#xff01; 国家政…

strlen函数

文章目录 strlen函数模拟实现&#xff1a; strlen函数 strlen函数是用来计算字符串长度的&#xff0c;不包括‘\0’ 使用&#xff1a; #include<stdio.h> #include<string.h>int main() {char arr[] "abcdef";int len strlen(arr);printf("%d\n…

Java基础(第一期):IDEA的下载和安装(步骤图) 项目结构的介绍 项目、模块、类的创建。第一个代码的实现

文章目录 IDEA1.1 IDEA概述1.2 IDEA的下载和安装1.2.1 下载1.2.2 安装 1.3 IDEA中层级结构介绍1.3.1 结构分类1.3.2 结构介绍project&#xff08;项目、工程&#xff09;module&#xff08;模块&#xff09;package&#xff08;包&#xff09;class&#xff08;类&#xff09; …

vue3 使用 elementUi: ./lib/theme-chalk/index.css is not exported from package

目录 1. 在 vue3 中使用 element-ui2. 如果启动报错&#xff1a;Module not found: Error: Package path ./lib/theme-chalk/index.css is not exported from package 1. 在 vue3 中使用 element-ui 在 vue3 中使用 element-ui&#xff0c;我们的流程一般是这样的&#xff1a;…

17 Transformer 的解码器(Decoders)——我要生成一个又一个单词

Transformer 编码器 编码器在干吗&#xff1a;词向量、图片向量&#xff0c;总而言之&#xff0c;编码器就是让计算机能够更合理地&#xff08;不确定性的&#xff09;认识人类世界客观存在的一些东西 Transformer 解码器 解码器会接收编码器生成的词向量&#xff0c;然后通…

Go并发编程之二

一、前言 前一篇 Go并发编程之一 主要介绍了如何通过go语句启动协程&#xff08;goroutine&#xff09;以及协程调度的不确定性&#xff0c;这一篇我们重点来介绍一下协程中另外一个重要概念channel&#xff0c;记住第一句话&#xff1a; goroutine之间不是通过共享内存来通信…

JUC高并发容器-CopyOnWriteArrayList

CopyOnWriteArrayList JUC高并发容器线程安全的同步容器类什么是高并发容器&#xff1f;CopyOnWriteArrayList JUC高并发容器 线程安全的同步容器类 Java同步容器类通过Synchronized(内置锁)来实现同步的容器&#xff0c;比如Vector、HashTable以及SynchronizedList等容器。线…

react封装一个简单的upload组件(待完善)

目录 react封装一个简单的upload组件component / uploadImg / uploadImg.jsx使用效果 react封装一个简单的upload组件 component / uploadImg / uploadImg.jsx import React, { useState } from react; import { LoadingOutlined, PlusOutlined } from ant-design/icons; imp…

【源码】C/C++运动会计分系统 期末设计源码

文章目录 题目介绍功能源码效果展示带报告&#xff08;内容&#xff09; 题目介绍 使用语言&#xff1a; 两个版本都会发&#xff1a; 版本1&#xff1a;C语言 版本2&#xff1a; C 代码量&#xff1a; 500 题目介绍&#xff1a; 要求&#xff1a;初始化输入&#xff1a;N-参赛…

C++ 中的模型预测路径积分 (MPPI) 控制

一、说明 模型预测路径积分控制&#xff08;MPPI&#xff09;是一种基于采样的模型预测控制算法。是MPC控制模型的延申和拓宽&#xff0c;要了解MPPI需要先理解MPC&#xff0c;参见文章&#xff1a;MPC预测控制概述和C 中的模型库-CSDN博客 二、模型预测路径积分 (MPPI) 控制 模…