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

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2