主页 > imtoken钱包app > 了解以太坊 DApp 和开发工具

了解以太坊 DApp 和开发工具

imtoken钱包app 2023-01-16 23:26:04

1. 了解以太坊工具

以太坊中有很多工具,有些工具会随着时间的推移而过时,但早期的网络文章会介绍它们,这会造成与现在工具的时差混淆,有些工具会随着需求逐渐流行起来工程。 有必要梳理一下:

1、go-ethereum:以太坊Go语言版本的源码(也叫Client,注意区块链网络里没有服务端)。
2、Geth:go-ethereum的命令行终端,能调用go-ethereum的API。可以通过多种方式获得,比如用homebrew安装、下载可执行二进制文件、通过go install/make geth go-ethereum源码等方式得到geth。
3、Ethereum Wallet:可视化的Geth(以太坊钱包),可以管理账户、发布合约。
4、Mist:以太坊浏览器,因为它连接的是以太坊区块链网络,可以通过mist访问DApp,当然也能访问管理Ethereum Wallet。

sitehzd.com 以太坊区块浏览_以太坊和以太币有什么区别_以太坊浏览器

5、Solidity:开发智能合约的编程语言,运行在EVM。 6、Remix:开发智能合约的IDE,基于浏览器。适合新手(版本控制、存储等不便)。(Mix停止更新,browser-solidity也停止更新,都使用Remix了) 7、Truffle和Embark是开发DApps的两个常用框架,可以写代码-编译-部署-测试-打包DApp(注意不仅仅可以开发智能合约)。 8、web3:以太坊基金会为DApp开发的标准RPC访问接口,也就是以太坊区块链网络与链外网络的连接桥梁。

以太坊浏览器_以太坊和以太币有什么区别_sitehzd.com 以太坊区块浏览

2. DAPP工具、开发及原理

通过一个Dapp开发实例来理解。

1.安装truffle(声音:车号)

npm i -g truffle

2、安装Ganache(发音:方纳士),Ganache是​​以太坊开发的个人使用区块链,下载可视化安装包。

3.新建一个Dapp项目。 先创建一个空目录如dapp以太坊浏览器,然后进入空目录。

你通常可以用 truffle 初始化一个项目:

sitehzd.com 以太坊区块浏览_以太坊浏览器_以太坊和以太币有什么区别

truffle init

也可以使用 truffle live 应用程序开箱即用的模板,例如 webpack:

truffle unbox webpack

我们使用第二种方法进行下面的演示。

4.我用的IDE是GoLand(可以用intellij idea系列的IDE),安装插件Intellij-Solidity。 打开项目后,可以友好的编写智能合约和DApps。

dapp目录下几个文件说明:

truffle.js:默认配置一个网络。 这个网络在ganache启动后自动启用(每次启动都是一个全新的初始网络,之前的应用数据会丢失),智能合约部署到这个网络上。

以太坊和以太币有什么区别_以太坊浏览器_sitehzd.com 以太坊区块浏览

迁移目录:这是合约的部署脚本。 请注意,名称以数字和下划线开头。 部署合约时,按照这个编号的顺序执行。

5.编译工程

终端cd到dapp目录下执行编译命令

truffle compile

你会看到dapp下多了一个build目录用来存放编译好的文件。 这些文件都是json格式的,这些编译好的合约文件可以通过import或者require在应用代码文件中引用。

6. 将合约部署到区块链网络

在终端执行

truffle migrate

以太坊和以太币有什么区别_以太坊浏览器_sitehzd.com 以太坊区块浏览

执行完成并成功后,从ganache界面可以看到生成了若干个区块和若干笔交易。 这些交易是从默认的第一个外部拥有账户到合约账户(这两个账户的概念见以太坊黄皮书,这里不做讨论)。

7.打包应用并接入

在终端执行(应用根目录下)

1)webpack编译打包应用

npm run build

【DApp原理】这样封装的结果就是一个单页面前端应用SPA(Single-Page App)。 可以放在自己的云Web服务器上,服务器上必须同时部署一个以太网节点,应用通过节点访问区块链网络。 DApp一般部署在链外以太坊浏览器,合约发布在链上。 互联网用户访问App接口操作函数,为合约暴露的web3接口。 DApp之所以去中心化,在于它的核心——合约,它被分发到链上的所有节点。

2)在本地启用应用程序

npm run dev

访问:8080,可以看到dapp界面,包括可视化合约功能。