首页 APP开发 正文

dapp开发去哪(Dapp开发)

APP开发 1644
本篇文章给大家谈谈dapp开发去哪,以及Dapp开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、Dapp和App有什么区别?

本篇文章给大家谈谈dapp开发去哪,以及Dapp开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Dapp和App有什么区别?

DApp 是 decentralized application 中文分布式 APP 的缩写。 

一个 DApp 有后台代码运行在分布式点对点网络中。传统的 APP 的后台代码是运行在中心化的服务器。 

一个 DApp 的前端代码可以由任何语言开发,和传统的 APP 一样。还有,DApp 的前端代码可以托管在分布式存储的服务中,例如:Swarm 或者 IPFS。 

如果一个 应用 = 前端 + 后台,因为以太坊合约是由运行在以太坊分布式点对点网络中的代码组成的,所以 分布式应用 = 前端 + 合约。 

图片演示一个 DApp 架构:

App我们都知道是客户端应用,是application的简称。DApp就是D+App,D是英文单词decentralization的首字母,单词翻译中文是去中心化,即DApp为去中心化应用。这是从字面上去理解这个概念,要在脑中形成清晰、准确、必要的概念,还需要深度去理解DApp。

对比APP,两者最大不同就是中心化与去中心化。App先要有钱,所以先融资;然后再有人,所以招齐人后再开发运营。而DApp则是继承传统App并结合区块链的特点所形成的产物,它更像是众筹模式、共享模式和去中心化模式.

DApp开发入门

本文仅介绍以太坊系列的DApp开发,其他链原理差不太多。

MetaMask安装完成并运行后,可以在Chrome控制台打印 MetaMask注入的window.ethereum对象

关于ethereum对象,我们只需要关心 ethereum.request 就足够了,MetaMask 使用 ethereum.request(args) 方法 来包装 RPC API。这些 API 基于所有以太坊客户端公开的接口。 简单来说钱包交互的大部分操作都是由 request() 方法实现,通过传入不同的方法名来区分。

⚠️ 即使ethereum对象中提供了chainId,isMetaMask,selectAddress属性,我们也不能完全相信这些属性,他们是不稳定或不标准,不建议使用。我们可以通过上面说的request方法,拿到可靠的数据 。

钱包通过method方法名,进行对应的实现 以获取钱包地址为例

调用 ethereum.request({ method: "eth_requestAccounts" }) ,钱包实现了该方法,那么就可以拿到钱包的地址了。

MetaMask注入的 window.ethereum 就是一个Provider,一个RPC节点也是一个Provider,通过Provider,我们有了访问区块链的能力。 在连接到钱包的情况下,通常使用钱包的Provider就可以了, ethers.providers.Web3Provider(ethereum)

如果只需要查询一些区块链数据,可以使用EtherscanProvider 和 InfuraProvider 连接公开的 第三方节点服务提供商 。JsonRpcProvider 和 IpcProvider 允许连接到我们控制或可以访问的以太坊节点。

获取当前账户余额

获取最新区块号

其他RPC操作,可以通过 JSON-RPC 查看。

通过 ethers.js 可以连接ERC20的合约,合约编译后会生成ABI,合约部署后,会生成合约地址,开发者通过 ABI和合约地址 ,对合约发送消息。

合约中的方法大致分为两种: 视图方法(免费),非视图方法(消耗Gas) ,可以通过ABI查看方法类型。

⚠️ ERC20需要多加关注的是 Approve() 方法以及 transfer() 和 transferFrom() 的区别 ,授权过的代币,被授权的那一方,可以通过调用 transferFrom() 方法,转走你授权数量内的代币,所以授权是一个很危险的操作,假设你授权了一个不良的合约,那你会面临授权的token被转走的风险,即使你没有泄露私钥助记词。

便利三方库: web3-react use-wallet

文档: doc.metamask.io ethers

dapp有公司用过吗?主要是做什么的?

DApp是Decentralized

Application的缩写,译为:分散式的应用程序。App我们都知道,我们在智能手机上安装的应用程序也就是App。而DApp比App多了一个‘D’,‘D’的意思是分散式的。所以,它的意思是

分散式的应用程序/去中心化的应用程序。

App是一种互联网应用程序,与传统的App最大的区别是:DApp运行在去中心化的网络上,也就是区块链网络中。网络中不存在中心化的节点可以完整的控制DApp。而App我们都知道,是中心化的。需要请求某台服务器来获取数据,处理数据等。

区块链相对于DApp来说是应用运行的底层环境。简单的可以类比为IOS,Andorid等手机操作系统于运行与之上的各种App。学习区块链来说不是学习区块链的底层部分,可能更多的人需要学习DApp的开发。构建与能够运行在区块链环境上的应用程序。

关于dapp开发去哪和Dapp开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码