18910140161

使用truffle开发以太坊Dapp

顺晟科技

2021-06-16 10:45:53

325

今天我们就来介绍一种更快捷的方式:松露,使用松露能帮我们快速的搭建分布式应用项目,并规范项目结构,甚至松露还提供了一些入门的dapp,帮助开发者快速上手。

本文主要介绍松露提供的一个转账应用,如果需要学习更多的dapp,请移步https://truffleframework.com/boxes

准备工作:

安装节点,npm,这里就不介绍了,私有链仍然使用的是Ganache

新公共管理安装-g块菌

1、新建项目

创建目录演示激光唱片演示

新公共管理初始化

块菌拆箱工具

# 如果需要搭建宠物商店,执行这条命令

松露拆箱宠物店

执行完之后,完整的项目结构如下:

应用

index.html

剧本

指数

风格

app.css

box-img-lg.png

box-img-sm.png

大楼/智能合约编译后的内容

地图

合约

元币。数据

移民。数据

index.html

合同公司智能合约存放目录

ConvertLib.sol

元币。溶胶

移民。索尔

移民/智能合约部署信息

1_initial_migration.js

2_deploy_contracts.js

包装锁

包。数据

试验/测试文件

testmetcoin。溶胶

元币。射流研究…

松露js//松露配置

2、编译、部署

需要先启动Ganache,不然部署时连不上

块菌迁徙

# 编译成功后会显示如下内容

将工件写入。/构建/合同

使用网络"开发"。

正在运行迁移: 1 _ initial _ migration。射流研究…

部署迁移.

.0x1d 307 F4 ba 87 bb a7 bfcbd 06 ba F5 fa 8 e 2d 2e 64 A8 a 69 a 18 D8 c 56 e 277 f 36 cc 1d 1677

迁移:0x 42 b27a 0495 c 97 b 75 E3 F5 ca 6 de 5 f 45401320d 7169

保存到网络的成功迁移.

.0xf 6 d61e 8 a 6840 AC 9438 b 6 DDD 64509 f 939438 Fe 8 EB 7 fa 2 f 2283 e 2e 9 c 52 a 1639857

保存工件.

正在运行migrat : 2 _ deploy _ contracts。射流研究…

正在部署ConvertLib.

.0xb 8 c 26443 EDA 840 c BD C5 e5a 61b 11678236 B2 FEA 14 ffd 1 F8 d 9 c 2434 CDA 9 a1 ba 642

转换lib :0x 8d 8 F5 fc 48 C5 ab 607 B2 EEA 17403d 96 c 371895347 f

将转换器链接到元连接

部署元连接.

.0xc 9 a2 c 12726 cdd 0a 9160d 832 eed 092 D1 a 15 B3 a 25 a 70 DBE 8 b 8 CB 9 a 079 dedd 5a 345

元连接:0x 84 db 03 db 9 b 32 f 49 b 054502 e 86 fcfa 9552052 c 10b

保存到网络的成功迁移.

.0xc 8 f 28755 BD 1094201014 b 13 FB 1 f 7773315 E3 b 6 f1 f 46 a9 E8 e 60 b 0567597888 c 52

保存工件.

如果报这个错未指定网络。无法确定当前网络。找到块菌。js,把网络中的名称修改为发展即可,因为默认连的就是发展

module.exports={

网络: {

发展: {

主机: '127.0.0.1 ',

port: 7545,

network _ id : ' *//匹配任何网络编号

}

}

}

如果报这个错误试图运行调用合同函数的事务,删除建设目录,重新执行块菌迁徙命令

这个错误是因为编译后又修改了块菌。射流研究…中的发展,地址不对导致的

3、启动项目

新公共管理运行开发

启动成功后,打开铬浏览器http://localhost:8080/,会弹出一个错误,或者在你有自指的这个位置没显示余额,因为在app/avascripts/app.js文件中连的端口是9545,修改成7545,刷新页面就可以看到你有10000元。

需要提醒的是:不需要装元掩码,不需要装元掩码,不需要装MetaMask!

如果你装了元掩码,打开这个页面会显示你有0个META,这是因为元掩码提供了web3对象,所以根本不会连本机的http://localhost:8080/

具体代码可以查看app/avascripts/app.js,拉到文件最下方可以看到如下内容

window.addEventListener('load ',function () {

//检查浏览器是否注入了Web3(雾/元掩码)

web3!=='undefined') {

console.warn(

使用从外部来源检测到的web3 .

如果您发现您的帐户没有出现或您有0个元货币

确保您已经正确配置了该源。'

如果使用元掩码,请参见以下链接

请随意删除此警告。)'

http://truffleframework.com/tutorials/truffle-and-metamask'

)

//使用雾/元遮罩的提供者

窗户。web 3=新web 3(web 3。当前提供商)

} else {

console.warn(

未检测到web3 ."回落到http://127 .0 .0。"1:9545

当您部署活着时,您应该删除这个回退,因为它本质上是不安全的。'

考虑切换到元掩码进行开发

更多信息请点击此处: http://truffleframework.com/tutorials/truffle-and-metamask'

)

//回退-使用您的回退策略(本地节点/托管节点in-dapp id管理/失败)

窗户。Web3=新的web 3(新的web 3。提供商。http provider(' http://127。0 .0 .1:9545 '))

}

App.start()

})

所以如果你装了元掩码,就需要修改下文件,把web3对象是否存在的判断注释掉,并修改端口为7545,只保留窗户。Web3=新的web 3(新的web 3。提供商。http provider(' http://127。0 .0 .1:7545 '),具体修改如下

window.addEventListener('load ',function () {

//检查浏览器是否注入了Web3(雾/元掩码)

//if (typeof web3!=='undefined') {

//console.warn(

//"使用从外部源检测到的web3 "

//'如果您发现您的帐户没有出现或您有0个元加入,'

//'确保您已经正确配置了该源。'

//"如果使用元掩码,请参见以下链接。"

//'请随意删除此警告。)'

//' http://truffleframework.com/tutorials/truffle-and-metamask'

//)

////使用雾/元遮罩的提供者

//窗口。web 3=新web 3(web 3。当前提供商)

//} else {

//console.warn(

//'未检测到web3 ."回落到http://127 .0 .0。"1:9545

//'您应该在实时部署时删除此回退,因为它本质上是不安全的。'

//'考虑切换到元掩码进行开发'

//'更多信息请点击此处: http://truffleframework.com/tutorials/truffle-and-metamask'

//)

//回退-使用您的回退策略(本地节点/托管节点in-dapp id管理/失败)

窗户。Web3=新的web 3(新的web 3。提供商。http provider(' http://127。0 .0 .1:7545 '))

//}

App.start()

})

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航