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

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

相关文章
|
安全 区块链
DAPP公链合约系统开发技术原理丨DAPP公链合约系统开发详细源码及案例
智能合约dapp系统开发是基于链游技术开发的应用程序,它利用智能合约来实现去中心化的应用。智能合约是一种程序,它可以在链游上运行,根据指定的条件自动执行。智能合约dapp系统开发的核心在于智能合约的开发,智能合约的开发需要具备一定的链游技术知识和编程技能
|
4月前
|
安全 区块链 数据库
智能合约DAPP交易所开发系统案例
智能合约运用了分布式账本技术。区块链是一种去中心化的数据库,每个参与者都可以拥有一份完整的账本副本
|
12月前
|
存储 安全 区块链
智能合约DAPP系统搭建 | 区块链技术智能合约系统模式开发
智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。
|
存储 安全 算法
DAPP合约系统开发|DAPP去中心化模式系统开发(成熟技术)
透明度和灵活性:任何区块链用户都可以评估合约逻辑和底层机制
|
网络安全 区块链
DAPP去中心化项目系统开发|DAPP质押流程分析
去中心化融需要去中心化的发行方式与之匹配package com.hou.test1;
|
存储 算法 区块链
GRETT格莱特智能合约系统开发|格莱特质押模式系统开发DAPP技术搭建
“去中心化”是区块链的典型特征之一 The liquidity providers provide the pool with the two
|
区块链 存储
DAPP智能合约系统开发详细技术及方案项目
区块的作用就是将不同时间阶段内的交易数据按照一定的格式和数量,打包成结构化数据,方便存储和管理。
|
JavaScript 前端开发 Go
区块链Dapp智能合约系统开发(开发功能)丨dapp/defi代币合约项目系统开发成熟案例版及源码部署
The following are important technical points in the development process of smart contract DApp:
|
存储 安全 区块链
|
人工智能 算法 区块链
DAPP智能合约去中心化开发(稳定版)丨DAPP智能合约去中心化系统开发(详情及逻辑)丨DAPP智能合约去中心源码系统
  人工智能(Artificial Intelligence,简称AI)是指计算机系统在完成类似人类智力所需的任务时所表现出来的能力。它是一种复杂的技术,通过将大量的数据输入到算法中进行学习,不断调整和改进自己的算法,从而不断优化其性能。