polygon马蹄链智能合约dapp开发|NFT游戏搭建技术

简介: Web 3.0的概念是由以太坊联合创始人、Polkadot创造者Gavin Wood在2014年提出的,代表了下一代的去中心化互联网,并赋予了个体价值。Web 3.0关注的是通过区块链等去中心化技术形成的“谁创造,谁拥有”的关系价值。

  随着社交媒体平台的出现,Web 2.0时期开始于2004年。在Web 2.0时代,用户能够上传自己的文本、图片和视频等内容到平台上,不再是内容的被动接受者,而是可以创造内容并与其他人进行交流。在Web 2.0时代,人们变成各种应用程序的用户,并在这些产品上创造大量的内容,这些数据被一个中心化的平台所掌控。

  Web 3.0的概念是由以太坊联合创始人、Polkadot创造者Gavin Wood在2014年提出的,代表了下一代的去中心化互联网,并赋予了个体价值。Web 3.0关注的是通过区块链等去中心化技术形成的“谁创造,谁拥有”的关系价值。

  以太坊官网对Web 3.0主要特点的总结如下:

  Web3 is decentralized:instead of large swathes of the internet controlled and owned by centralized entities,ownership gets distributed amongst its builders and users.

  Web3 is permissionless:everyone has equal access to participate in Web3,and no one gets excluded.

  Web3 has native payments:it uses cryptocurrency for spending and sending money online instead of relying on the outdated infrastructure of banks and payment processors.

  Web3 is trustless:it operates using incentives and economic mechanisms instead of relying on trusted third-parties.

  Web 2.0与Web 3.0开发范式对比

  Web 2.0开发范式:

  需要开发登录、注册功能,让用户绑定邮箱、绑定手机,需要搭建数据库来存储用户注册信息以及用户交互数据

  使用前端代码语言(JavaScript,HTML,CSS)来开发页面逻辑,需要搭建一个服务器来部署前端页面

  使用后端代码语言(像Node.js,Java,Go等)来开发业务逻辑,并需要搭建一个服务器来部署后端服务,并需要运维服务

  所有代码、数据都部署在中心化的服务器上,所有控制权归开发者

  Web 3.0开发范式:

  不需要用户绑定邮箱,绑定手机,可以直接通过钱包登录,也不需要存储用户信息

  可以不需要搭建前端服务器,用户可通过IPFS或arweave存储前端页面,并进行访问

  不需要搭建后端服务器,后端逻辑是用智能合约编写的,运行在EVM上的

  不需要搭建数据库,历史数据与数据库操作通过TheGraph来实现

  truffle提供了很多项目模板,可以快速搭建一个去中心化应用的代码骨架。我们使用webpack项目模板来构建Hello合约。在smartcontract目录下,执行如下命令:

  truffle unbox webpack

  初始化项目的时候,它会创建运行一个完整Dapp所需的文件和目录。我们将strings.sol和Hello.sol两个合约文件移动到contracts目录下,并删除contracts目录下原有的ConvertLib.sol和MetaCoin.sol文件(Migrations.sol合约用来管理应用合约的部署,因此请勿删除)。目录结构如下:

  smartcontract

  ├──app

  ├──contracts

  ├──Hello.sol

  ├──Migrations.sol

  └──strings.sol

  ├──migrations

  ├──1_initial_migration.js

  └──2_deploy_contracts.js

  ├──node_modules

  ├──package.json

  ├──test

  ├──truffle.js

  └──webpack.config.js

  修改部署脚本

  目录migrations(迁移的意思)非常重要。truffle使用该目录下的脚本来管理合约的部署。在前面几篇教程中,我们是通过自己编写编译部署脚本deploy.js,并在node控制台中运行来将Hello合约部署到区块链上的。有了truffle,以后再也不用这么做了。

  第一个脚本1_initial_migration.js的作用是向区块链部署Migrations合约。这个合约的作用是存储并跟踪已经部署的最新合约。每次运行脚本时,truffle就会向区块链查询获取已部署好的合约,然后部署新的合约。部署完成后,这个脚本会更新Migrations合约中的last_completed_migration字段指向最新部署的合约。

  我们可以简单地把Migrations合约当成是一个数据库表,字段last_completed_migration总是保持最新状态。

  我们来修改第二个脚本2_deploy_contracts.js:

  //artifacts对象为truffle框架提供

  //artifacts.require()方法与Node中的require()方法类似

  //编译合约代码。自动调用solc编译器来编译合约代码并返回编译结果对象

  var stringsContract=artifacts.require("./strings.sol");

  var HelloContract=artifacts.require("./Hello.sol");

  //部署器对象deployer为truffle框架提供

  module.exports=function(deployer){

  //部署string.sol合约

  deployer.deploy(stringsContract);

  //将已部署的strings合约类库连接到Hello合约

  deployer.link(stringsContract,HelloContract);

  //部署Hello.sol合约

  deployer.deploy(HelloContract);

  };

相关文章
|
安全 Python
Python3,5行代码让电脑永不息屏。
Python3,5行代码让电脑永不息屏。
453 0
Python3,5行代码让电脑永不息屏。
|
存储 NoSQL 大数据
大数据 数据存储优化
【10月更文挑战第25天】
710 2
|
7月前
|
机器学习/深度学习 数据可视化 数据安全/隐私保护
抖音留痕脚本,快手小红书微博,自动留痕插件工具
就是用autojs写的一个自动化工具脚本,其实写了好几天,感觉有点价值就分享出来吧 核心代码实现
|
监控 Java
压力测试Jmeter的简单使用,性能监控-堆内存与垃圾回收 -jvisualvm的使用
这篇文章介绍了如何使用JMeter进行压力测试,包括测试前的配置、测试执行和结果查看。同时,还探讨了性能监控工具jconsole和jvisualvm的使用,特别是jvisualvm,它可以监控内存泄露、跟踪垃圾回收、执行时内存和CPU分析以及线程分析等,文章还提供了使用这些工具的详细步骤和说明。
压力测试Jmeter的简单使用,性能监控-堆内存与垃圾回收 -jvisualvm的使用
|
供应链 搜索推荐 API
1688商品类目API接口的开发应用与收益
1688平台作为全球领先的B2B在线交易市场,提供了丰富的API接口,助力企业高效获取商品信息、优化供应链管理。本文聚焦1688商品类目API接口的开发应用,涵盖接口概述、环境配置、Python代码示例及实际案例,展示其为企业带来的显著收益,如提升运营效率、优化市场策略、降低成本和增强用户体验。通过合理调用API,企业可大幅提升竞争力。
393 7
|
关系型数据库 数据库 数据安全/隐私保护
使用PostgreSQL进行高级数据库管理
【5月更文挑战第17天】本文介绍了使用PostgreSQL进行高级数据库管理,涵盖性能调优、安全性加强和备份恢复。性能调优包括索引优化、查询优化、分区和硬件配置调整;安全性涉及权限管理、加密及审计监控;备份恢复则讨论了物理备份、逻辑备份和持续归档。通过这些实践,可提升PostgreSQL的性能和安全性,确保数据资源的有效管理。
|
机器人 测试技术 Python
作为测试人员,RobotFramework框架真的是必须掌握的吗?
本文探讨了Robot Framework(RF)作为自动化测试框架的重要性,指出虽然RF具有易用性和灵活性,但并非测试人员必须掌握的工具,因为存在许多可替代的自动化测试解决方案。
377 0
作为测试人员,RobotFramework框架真的是必须掌握的吗?
|
存储 机器学习/深度学习 并行计算
95% 的算法都是基于这 6 种算法思想 (详细介绍)
95% 的算法都是基于这 6 种算法思想 (详细介绍)
550 4
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 2023 | 通过RFAConv重塑空间注意力(深度学习的前沿突破)
YOLOv8改进 | 2023 | 通过RFAConv重塑空间注意力(深度学习的前沿突破)
600 0
|
Web App开发 JavaScript 前端开发
QRCode.js:使用 JavaScript 生成二维码
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
2277 0