区块链笔记: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语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j