前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在区块链上编程:竞猜DApp 系统开发简介

在区块链上编程:竞猜DApp 系统开发简介

原创
作者头像
KFZ433
发布2022-07-01 10:14:40
8800
发布2022-07-01 10:14:40
举报
文章被收录于专栏:NFT链游的应用NFT链游的应用

一、DApp介绍什么是 DApp?

DApp 是 Decentralized Application 的简称,及去中心化应用。 在某种程度上,比特币可以说是出现的第一个 DAPP,因为它是完全开源的,为贡献者提供奖励回报,不受一个中央机构的控制,并使用区块链作为支撑技术。 区块链,作为一个基础设施,提供了分布式的去中心化可信数据库,人们可以基于此,可以开发各种应用,适用于不同的场景。 简单来说,DAPP 和普通的 App 原理一样,除了他们是完全去中心化的,由类似以太坊网络本身自己的节点来运作的 DAPP,不依赖于任何中心化的服务器,DAPP 是去中心化的,可以完全自动地运行。 目前 DApp 通常指代基于以太坊或者 EOS 上的智能合约开发的相关应用。

DApp 运行原理

DApp 底层区块链开发平台就好比手机的 iOS 和 Android 系统,是各种 DApp 的底层生态环境,DApp 就是底层区块链平台生态上衍生的各种分布式应用,也是区块链世界中的基础服务提供方,DApp 于区块链,就好比 APP 之于 iOS 和 Android。

什么是智能合约?

如果把区块链看做是一个数据库,数据源, 智能合约基本上就是一段数据库操作脚本, 它决定了你如何在区块链上存储数据,修改数据。

智能合约开发简介

智能合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定地址。 智能合约账户能够在彼此之间传递信息,进行图灵完备的运算。智能合约依靠被称作以太坊虚拟机(EVM) 字节代码(以太坊特有的二进制格式)上的区块链运行。

智能合约使用诸如 Solidity 等高级语言写成,然后编译成字节代码上传到区块链上。

智能合约开发流程大概有以下步骤:

编写智能合约(如基于 solidity)

测试智能合约,在测试网络或者私有链进行合约的功能测试

编译和发布合约,将合约部署到链上

操作合约,利用诸如 web3.js 等接口,通过访问智能合约的地址,来调用和操作智能合约。

结构示意图:

Solidity

Solidity 是一种语法类似 JavaScript 的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。

代码片段:

代码语言:javascript
复制
pragma solidity ^0.4.22;

contract helloWorld {
 function renderHelloWorld () public pure returns (string) {
   return 'helloWorld';
 }
}

ERC-20

最著名的智能合约,想必大家都听过,那就是 ERC20。 ERC-20 是一种代币的标准协议,简单地说,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括 MIST、imToken 等),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。

一个基于 ERC-20 的代币包含以下接口:

代码语言:javascript
复制
contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

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

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

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

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

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