前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DAPP系统开发Web3合约技术

DAPP系统开发Web3合约技术

原创
作者头像
用户5539481
发布2022-09-30 15:26:46
4200
发布2022-09-30 15:26:46
举报
文章被收录于专栏:系统开发案例系统开发案例

  Web 3.0应用程序叫做DApp,全名是Decentralized Application(去中心化应用程序)。

  要了解DApp,首先就得了解“去中心化”,在Web 2.0的时候,我们访问的服务都属于【中心化】服务,管理者有绝对的权威,平台的一些举措,对用户有着很大的影响。

  Web3.0,消除了中心化,没有集中式的数据库,没有存放后端代码的集中式Web服务器。采用了区块链技术,在互联网上的匿名节点维护的分布式状态机上构建应用程序。

  “状态机”是指一台机器,它维护一些给定的程序状态、以及该机器上允许的未来状态,它具有非常严格的规则(即共识)来定义状态如何转换。

  没有一个实体可以控制这个分布式的状态机——它由网络中的每个人共同维护。

  后端逻辑代码化身成状态机上的“智能合约”,这是开源的。

  前端部分呢?暂按下不表,先看此时数据库、后端代码演变后的架构图:

  再进一步看看这些新颖的概念:

  ethereum blockchain,以太坊区块链,被认为是“世界计算器”,一个可全局访问的状态机,对等节点网络维护,状态的更改遵循共识规则的约束;只要是写入了数据,就会被记录,数据不能再更新回去;

  智能合约:以太坊上运行的程序,由高级编程语言编写

  任何人都能检查智能合约是否合理;

  EVM虚拟机,用于执行合约的环境,相当于执行引擎;

  OK,视野来到了前端代码部分。按道理将,前端代码应该也是用智能合约的方式实现,实际上,它也确实如此,不过要更为复杂一点。

  当我们想要与区块链上的数据和代码进行交互时,我们需要与这些节点中的一个进行交互。任何节点都可以广播在EVM上执行交易的请求,然后矿工将执行交易并将结果状态更改传播到网络的其余部分。

  广播新交易有两种方式:

  设置自己运行以太坊区块链软件的节点;

  使用Infura、Alchemy和Quicknode等第三方服务提供的节点;

  借助第三方节点可能会更轻松一点,它的逻辑是这样的:

  每个以太坊客户端(即提供者)都实现了JSON-RPC规范。这确保了当前端应用程序想要与区块链交互时,有一组统一的方法。JSON-RPC是一种无状态、轻量级的远程过程调用(RPC)协议,定义了多个数据结构及其处理规则。它与传输无关,可以通过多种方式传输,比如HTTP、套接字、其它传输环境,JSON(RFC 4627)作为一种数据格式。

  还有一个很重要的东西,进行身份验证,鉴权。通常借助Metamask实现;

  Metamask将用户的私钥存储在浏览器中,每当前端需要用户签署交易时,它就会调用Metamask。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档