区块链笔记:truffle、ganache-cli框架工具的安装开发环境的搭建以及合约的编写,编译和部署

本文主要是介绍区块链笔记:truffle、ganache-cli框架工具的安装开发环境的搭建以及合约的编写,编译和部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Truffle

  • Truffle是以太坊智能合约的开发工具
  • 通过这个工具可以对我们的智能合约来进行编译,测试,以及部署,相当于一个自动化的一个东西
  • Truffle本身使用nodejs来开发的,并且是开源的
    • 官方地址 https://www.trufflesuite.com/truffle
    • 中文文档:https://truffle.tryblockchain.org/
  • 通过Truffle可以对多份合约来进行编译
  • 提供编译、测试、部署功能,很自动化
  • 安装:$npm i truffle -g
  • 版本查看:$truffle version
  • 创建最小工作目录:$truffle init
    • 如果我们不想去开发一个某种特定模板的应用,只想创建一个最基本的工作目录
    • 我们可以看到执行这个命令之后呢,执行所在的当前目录中就会生成如下的文件:contracts, migrations, test, truffle-config.js
    • contracts是存储智能合约源代码文件的
    • migrations是部署相关的配置
    • test 是测试目录,配合 truffle test
    • truffle-config.js 做一些配置,比如连接哪个节点等
  • 下载示例模板:$truffle unbox <box-name>
    • 假如我们想开发一些具体的应用,比如宠物商店,带有web前端的DApp
    • 为了方便开发具体场景的应用官方提供一些模板
    • 相当于把一些特定场景的应用,基本的文件结构,基本组件事先准备好了
  • truffle是一个轻量级的集成开发工具

ganache-cli

  • 是一个方便开发以太坊的框架工具, 它是一个以太坊模拟系统
  • 我们要开发一款以太坊的智能合约,最终要连接一个节点
  • 当然我们也可以直接连接以太坊主网的全节点,但是比较麻烦
    • 我们在使用过程当中需要消耗真实的以太币(成本)
    • 需要等待矿工打包,不适合我们测试环境
    • 我们测试的时候只是希望有一个模拟系统
    • 它可以直接生成一组账号地址,能够直接模拟挖矿,方便我们来进行一个智能合约的测试使用
  • 使用Ethereumjs模拟的以太坊全节点
    • 它是一个模拟工具(模拟器)
  • 使用Nodejs开发并发布的一个Node包
    • 本身也是使用nodejs开发的,通过npm安装
    • npm i -g ganache-cli
    • 控制台直接输入ganache-cli,就可以启动起来
    • 可以看到它默认生成的10个地址,以及包括对应的私钥
    • 这就是这个模拟器方便我们测试使用的一个原因,自动生成一些测试所需要的一些数据

合约编写

  • 就是一般的源代码的编写
  • 使用任何编辑器都可以源码编写:vim/vscode
  • 随着以太坊的流行,很多编辑器都已内置了一些插件,用来支持Solidity语言(默认合约编程语言)
  • 合约编写完成后保存成一个后缀为.sol的源码文件,等待编译

合约编译

  • 以太坊1.5版本的节点可以在控制台编译,有相关的一些编译命令的
  • 后续版本去除了这个功能,需要在外部编译
  • truffle编译命令 $truffle compile
  • 编译完成后生成相应字节码

合约部署

  • 在以太坊上合约的部署跟转账,合约调用,本质上都一样,对以太坊来说都是发送一笔交易
  • 这笔交易用于合约部署,也就是账本存储把字节码存下来
  • 使用truffle工具, 当它连接到一个节点以后,使用$truffle migrate就可以把合约部署到节点上
  • 这个节点会把相应部署动作,以发送交易的形式广播给其他节点

这篇关于区块链笔记:truffle、ganache-cli框架工具的安装开发环境的搭建以及合约的编写,编译和部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/950957

相关文章

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件