区块链笔记: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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t