DAPP智能合约系统功能开发上链技术

简介: 智能合约的编译、部署和测试

  智能合约的编译、部署和测试

  ”这一部分,之后再来看这些文件的作用。

  ①node_modules/、package-lock.json和package.json

  这些是node项目的必须组成部分,包括了项目的配置信息、安装的依赖模块等,这里可以先无视。

  ②contracts/Greeter.sol

  这个文件是项目中的重点,叫智能合约文件。什么是智能合约呢?你可以把智能合约,同样理解为一种可以运行的程序。只不过这个程序比较特殊,它是运行在以太坊的EVM虚拟机(https://ethereum.org/zh/developers/docs/evm/)环境上。并且,程序本身、程序的输入输出、运行结果,对所有人可见。

  Solidity语言,是智能合约开发的主流语言之一。Solidity语言的入门教程,不是本文涉及的重点,这里只是简单提一下。

  简单用Java类比一下:原来你写了一段Java代码,放进一个源文件叫作HelloWorld.java,用javac执行编译,最终在自己的电脑或者服务器上,被JVM虚拟机执行;现在写了一段Greeter.sol代码,它也可以被编译,被执行,只不过运行环境变成了以太坊的EVM虚拟机。

  初始化项目以后,自动生成的代码是这样的:

  //SPDX-License-Identifier:Unlicense//声明licensepragma solidity^0.8.0;//定义版本号import"hardhat/console.sol";//导入其它智能合约文件contract Greeter{//定义一个合约,合约名字叫Greeter string private greeting;//这个合约的一个私有变量constructor(string memory _greeting){//合约的构造函数,//当且仅当合约被部署时,会被执行一次console.log("Deploying a Greeter with greeting:",_greeting);greeting=_greeting;}function greet()public view returns(string memory){//可以被外部调用的合约方法,view声明了这是个只读方法,//不会改变合约的状态return greeting;}function setGreeting(string memory _greeting)public{//这是一个写方法,会改变合约的状态,且外部调用时会消耗gas console.log("Changing greeting from'%s'to'%s'",greeting,_greeting);greeting=_greeting;}}

  第1行声明了License,比如GPL-3.0;

  第2行声明了编译器版本,这里面强制指定了版本不得低于0.8.0,也不能高于0.9.0;

  第4行导入了其它合约文件,这里面的

  hardhat/console.sol

  文件,是Hardhat框架自带的,是一个用于方便调试的合约文件,源码在这里(https://github.com/NomicFoundation/hardhat/blob/master/packages/hardhat-core/console.sol);

  第6行开始,就是合约文件的主体部分。从结构上看,它很像是在C++或者Java中定义一个类,也包括了字段变量、构造方法、读方法、写方法等。这里面出现了几个特殊的关键字:

  contract:声明一个合约;

  memory:和storage关键字相反,代表了变量只会临时放在内存中,不会存储在合约的状态中;

  view:声明该方法为只读方法,不会改变合约本身的状态。

  ③scripts/sample_scripts.js

  这个JavaScript文件的作用,是将刚才的

  Greeter.sol

  智能合约编译并部署到链上。

相关文章
|
存储 JavaScript 前端开发
DAPP智能合约系统功能开发上链技术
  这个文件是项目中的重点,叫智能合约文件。什么是智能合约呢?你可以把智能合约,同样理解为一种可以运行的程序。只不过这个程序比较特殊,它是运行在以太坊的EVM虚拟机(https://ethereum.org/zh/developers/docs/evm/)环境上。并且,程序本身、程序的输入输出、运行结果,对所有人可见。
DAPP智能合约系统功能开发上链技术
|
存储 机器学习/深度学习 人工智能
区块链智能合约DAPP上链模式系统开发技术方案
区块链智能合约DAPP上链模式系统开发技术方案
213 0
|
JSON 前端开发 编译器
链上DAPP系统开发|DApp智能合约开发搭建技术
合约可以调用其他合约,只需知道地址和ABI,我们就可以在合约内部调用其他合约,需要注意的是,调用合约也是事务性操作,因此,你不需要通过手动管理异步操作的方式来等待返回结果。在合约内部调用其他合约需要消耗额外的Gas费用。
链上DAPP系统开发|DApp智能合约开发搭建技术
|
区块链 计算机视觉
什么是DAPP智能合约系统开发技术方案丨智能合约区块链DAPP项目系统开发流程
什么是DAPP智能合约系统开发技术方案丨智能合约区块链DAPP项目系统开发流程
135 0
|
存储 监控 算法
DAPP链上质押项目系统开发|DAPP合约模式开发案例
DAPP不依赖中心化机构也不受单一实体控制,因此DAPP可以减少中心化机构的意见干扰
|
安全 区块链
DAPP公链合约系统开发技术原理丨DAPP公链合约系统开发详细源码及案例
智能合约dapp系统开发是基于链游技术开发的应用程序,它利用智能合约来实现去中心化的应用。智能合约是一种程序,它可以在链游上运行,根据指定的条件自动执行。智能合约dapp系统开发的核心在于智能合约的开发,智能合约的开发需要具备一定的链游技术知识和编程技能
|
存储 Rust 分布式计算
DAPP智能合约开发运营版,DAPP链上智能合约系统开发详细及源码
基于区块链技术的基础设施 区块链脱胎于BTC系统,从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“公开透明”、“集体维护”等特征,基于这些特征,区块链奠定了坚实的“信任”基础,创造了可靠的“合作”机制。
DAPP智能合约开发运营版,DAPP链上智能合约系统开发详细及源码
|
JavaScript 前端开发 Go
区块链Dapp智能合约系统开发(开发功能)丨dapp/defi代币合约项目系统开发成熟案例版及源码部署
The following are important technical points in the development process of smart contract DApp:
|
存储 算法 区块链
区块链DAPP智能合约项目系统开发讲解方案
区块链DAPP智能合约项目系统开发讲解方案
249 11
|
存储 安全 程序员
DAPP智能合约系统开发区块链智能合约系统模式开发
DApp智能合约系统开发,区块链智能合约app开发,DApp智能合约软件开发、现成DApp智能合约模式系统、DApp智能合约开发搭建、区块链智能合约系统定制开发、DApp智能合约开发需求及费用。 区块链智能合约(Smartcontract)是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。

热门文章

最新文章