十步搞定HelloWorld--部署和测试Solidity第一个合约

简介: 十步搞定HelloWorld--部署和测试Solidity第一个合约

  最近正在学习以太坊Solidity智能合约,学习过程遇到很多问题。看了很多的博客,经过多次试错解决。终于让我成功部署和测试了第一个Solidity合约,于是激动的写下来。

 

准备

  •    LinuxMint
  •    Node.js
  •    安装truffle和testrpc测试环境

apt-get命令安装Node.js

   命令如下,其他安装方式请参考 Nodejs

$ sudo apt-get install nodejs 
$ sudo apt-get install npm

安装Truffle

$ npm install -g truffle

安装TestRPC

$ npm install -g ethereumjs-testrpc
$ testrpc 

 如果提示找不到上面命令,还需进行软连接的配置(具体nodejs安装目录下):

$ ln -s /app/softwares/nodejs/bin/truffle /urs/local/bin/
$ ln -s /app/softwares/nodejs/bin/testrpc /urs/local/bin/

创建工程

     1、使用命令创建一个工程项目:

$ mkdir ContractDemo
$ cd ContractDemo/
$ truffle init

image.png

    创建完成后可以在相应目录下看到如下内容:

image.png

   2、在contracts目录下创建一个HelloWorld.sol 文件 ,写入以下内容:

pragma solidity ^0.4.4;
contract HelloWorld {
    function sayHello() public returns (string) {
        return ("Hello World");
    }
}

   创建完成后:

image.png

    3、打开 truffle.js文件,输入以下内容:

module.exports={
  networks:{
    development:{
      host:"localhost",
      port:8545,
      network_id:"*"//匹配任何netword id
    }
  }
};

image.png

   4、在migrations目录下创建一个2_initial_contract.js 文件 ,写入以下内容:

var HelloWorld = artifacts.require("./HelloWorld.sol");
module.exports = function(deployer) {
    deployer.deploy(HelloWorld);
} 

   完成后如下,文件如下:

image.png

编译工程

   5、当创建完成,进入工程根目录下,在终端中进行编译:

$ truffle compile 

image.png

     有个警告,暂时先不管。编译是成功了的

 

测试部署

   6、启动安装好的EthereumJS RPC客户端

$ testrpc

image.png

   7、重新打开一个终端,部署刚刚写好的合约:

$ truffle migrate

image.png

 

   此时我们发现testrpc终端有变化:

image.png

 

   说明合约部署成功!恭喜,那么怎么利用控制台与合约进行交互呢?

   8、使用 truflle console功能:

$ truffle console

image.png

   9、  接着输入

HelloWorld.deployed().then(instance => contract = instance)    

image.png

   10、最后,见证奇迹的时刻:

contract.sayHello.call()

image.png

   

这就是调用合约成功,希望你能成功!!!具体还有更多好玩的内容,笔者也在学,后续再写。

 

相关文章
|
10月前
|
机器学习/深度学习 自然语言处理 API
阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
DeepSeek R1是基于Transformer架构的先进大规模深度学习模型,2025年1月20日发布并开源,遵循MIT License。它在自然语言处理等任务上表现出色,高效提取特征,缩短训练时间。阿里云推出的满血版方案解决了服务器压力问题,提供100万免费token,云端部署降低成本,用户可快速启动体验。虽然回答速度有待提升,但整体表现优异,备受关注。
378 8
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
21357 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
11月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
11月前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
293 10
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
3357 1
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
敏捷开发 Devops 测试技术
自动化测试中的持续集成与持续部署
在现代软件开发实践中,自动化测试是确保软件质量和快速迭代的关键。本文将探讨自动化测试如何与持续集成(CI)和持续部署(CD)流程相结合,以提高开发效率和软件质量。我们将分析CI/CD管道中自动化测试的最佳实践,以及如何克服实施过程中的挑战。
207 6
|
缓存 自然语言处理 并行计算
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
4625 1
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
983 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
482 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
1309 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)