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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推