- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
搞明?白以太坊DAPP开发
熊丽兵(Tiny熊)
?自我介绍
熊丽兵(Tiny熊)
深?入浅出区块链
登链科技创始?人
?目录
什什么是去中?心化应?用DApp
?一个简单的DApp
编写合约
编写 Web 前端
实现前端与合约交互
Decentralized App
App
App/H5/?小程序
请求
回应
服务器?
服务器?
DApp
App/H5/
App/H5/?小程序
交易易 事件
App
如何开发
DApp
客户端UI 客户端UI
HTTP RPC
后端服务程序 智能合约
Nginx/Apache 节点EVM
?一个简单的Dapp
?一个简单的Dapp
读取合约内名字和年年龄并显示
名字和年年龄保存在区块链(合约)上
如何实现
编写智能合约
编写 Web 前端
实现前端与合约交互
编写智能合约
智能合约
以太坊上的程序,是代码和数据(状态)的集合。
编程语?言:Solidity
contract Hello {
function hello() public returns(string) { return "Hello World";
}
}
编写智能合约
?工具
IDE - Remix (在线的Web IDE)
钱包 - MetaMask
编写智能合约
pragma solidity ^0.5.0; contract InfoContract {
string name; uint age;
function setInfo(string _name, uint _age) public { name = _name;
age = _age;
}
function getInfo() public view returns(string, uint) { return (name, age);
}
}
编写前端
<div class="container">
<h1>First DApp Demo</h1>
<h2 id="info"> </h2>
<label >姓名:</label>
<input id="name" type="text">
<label>年年龄:</label>
<input id="age" type="text">
<button id = "button">更更新</button>
</div>
实现前端与合约交互
web3.js
以太坊和节点交互的?一套API,是对RPC调?用的封装
获取节点状态
获取账号信息
调?用合约、监听合约事件
…
实现前端与合约交互
导?入及初始web3
<script src=“web3.min.js"></script>
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
web3 = new Web3(new Wviders.HttpProvider(""));
}
}
实现前端与合约交互
实例例合约
var infoContract = web3.eth.contract(ABI); var info = infoContract.at(’合约地址’);
ABI:Application Binary Interface
应?用程序?二进制接?口:告诉应?用合约提供了了那些接?口
实现前端与合约交互
调?用合约函数
info.getInfo(function(error, result) {
});
info.setInfo(name, age, function(error, result) {
})
demo github: /xilibi2003/DAppDemos
Tru?e
开发框架、脚?手架 :集成合约编译、链接、测试、部署…
Remix 中编译拷?贝ABI tru?e compile
Remix 中部署拷?贝地址 tru?e migrate
不不易易测试 tru?e test
DApp的问题
DApp -> DWeb
谢 谢
学习完整课程
文档评论(0)