区块链实训教程(6)--开发、编译、部署、调用HelloWorld合约

news2024/11/20 23:20:18

文章目录

  • 1. 任务背景
  • 2. 任务目标
  • 3. 相关知识点
  • 4. 任务实操
    • 4.1 新建合约文件
    • 4.2 编写合约代码
    • 4.3 保存、编译、部署合约
    • 4.4 调用合约
  • 5. 任务总结

1. 任务背景

FISCO BCOS运用智能合约进行归纳资产管理、规则定义和价值交换等操作,所以我们需要学习如何使用智能合约。

2. 任务目标

开发一个最基本的HelloWorld智能合约。

3. 相关知识点

智能合约概念:

智能合约概念于1995年由Nick Szabo首次提出,指以数字形式定义的能自动执行条款的合约,数字形式意味着合约必须用计算机代码实现,因为只要参与方达成协定,智能合约建立的权利和义务,就会被自动执行,且结果不能被否认。

智能合约生命周期:

智能合约的生命周期为设计,开发,测试,部署,运行,升级,销毁等几个步骤。开发人员根据需求,进行智能合约代码的编写,编译,单元测试。合约开发语言可包括solidity, C++, java, go, javascript, rust等,语言的选择根据平台虚拟机选型而定。

智能合约开发语言Solidity:

Solidity 是 Ethereum 的一种契约型编程语言,其语法与 JavaScript 类似。

4. 任务实操

上面说的多少有点抽象,接下来我们开始实操。

4.1 新建合约文件

在合约管理-合约IDE中点击红圈中的新建文件按钮
在这里插入图片描述
合约名称设置为HelloWorld后确认
在这里插入图片描述

4.2 编写合约代码

右侧编写HelloWorld合约,该合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。合约内容如下:

pragma solidity ^0.4.24;
contract HelloWorld {
    string name;
    function HelloWorld() {
        name = "Hello, World!";
    }
    function get()constant returns(string) {
        return name;
    }
    function set(string n) {
        name = n;
    }
}

4.3 保存、编译、部署合约

依次点击保存、编译、部署合约按钮。

在这里插入图片描述
注意点击部署后,需要联动新增用户。
在这里插入图片描述
输入用户名即可:
在这里插入图片描述
部署注意合约地址信息,可以点击红圈中按钮复制合约地址。
在这里插入图片描述

4.4 调用合约

点击合约调用按钮,调用刚刚复制的地址(即为部署的HelloWorld合约),调用其set方法,同时传入参数先定个小目标赚他一个亿。最后点击确认。
在这里插入图片描述
点击后提示成功,如下图:
在这里插入图片描述

此处发现一枚彩蛋,上面这个提示成功提示框,不是Element框架里面的Message组件么哈哈。

然后我们再调用合约中的get方法,将name读取出来:
在这里插入图片描述
调用结果如下:
在这里插入图片描述

5. 任务总结

HelloWorld程序相对还是很简单,容易理解。

注意咱们上面编写的程序,跟之前的最大区别是。这个程序是部署到区块链上运行、调用的,所以它具备区块链系统的能力,不可小觑之。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

aws ec2 配置jenkins和gitlab

环境搭建 下载jenkins的war包,启动jenkisn nohup java -jar jenkins.war --httpPort8091 > jenkins.log 2>&1 &docker安装gitlab 默认情况下,Omnibus GitLab 会自动为初始管理员用户账号 (root) 生成密码,并将其存储到 /etc…

HarmonyOS系统中内核实现温湿度采集方法

大家好,今天主要来聊一聊,如何使用鸿蒙系统中的温湿度传感器方法。 第一:温湿度传感器基本原理 大部分的传感器是在环境温度变化后会产生一个相应的延伸,因此传感器可以以不同的方式对这种反应进行信号转换。常见的大部分是电阻…

gitlab cicd 5分钟快速入门搭建私人代码仓库

gitlab 是企业级私有服务器 本文章采用docker搭建gitlab 如有不懂可微信我号yizheng369 环境准备 购买阿里云服务器,或者其他服务器 注意:本文章是用阿里云的centos 7.6作为服务器 搭建步骤 1.设置环境变量 export GITLAB_HOME/srv/gitlab2.编写dock…

今天面了个阿里拿27k出来的小哥,让我见识到了什么是天花板

2022年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎! 计算机IT行业薪资高,平均薪资是文科其他岗位的3…

PLC NAND 虽来但远

前言 图片来源: 存储随笔 2022年8月份在美国FMS峰会上,Solidigm公司(前身为 Intel NAND 部门) 展示了全球第一款基于PLC NAND研发的SSD。这也标志着,PLC时代已正式拉开序幕。出于对 PLC 的好奇,本文分享PLC NAND 知识&#xff0…

C/C++描述 - 矩阵乘积的计算

矩阵运算是现代科学及工程计算的基石之一,而矩阵乘法则是其中最常见一种运算。对于二维矩阵A、B,如果A的列数等于B的行数,则矩阵A、B可乘,其结果矩阵C的行数等于A的行数,列数等于B的列数。 本文引用自作者编写的下述图…

ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?

目录 01 加载RGB影像数据 02 分别将三个波段进行保存 03 将RGB三色图像转化为HSI(HSB或者叫HSV)图像 04 转换的HSI图像拆分成H、S、I三个影像 首先,需要明确,手机拍摄的影像即是Red、Green、Blue三波段影像; 另外,由于方法十分…

视觉合集3

这次的合集是找到了几个论文... 一起来说下 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a cat a cat? Prompt-to-Prompt Ima…

【论文阅读】Pre-training Methods in Information Retrieval

文章目录前言Abs1.Intro2.Background2.1.A Hierarchical View of IR2.1.1.The Core Problem View of IR2.1.2.The Framework View of IR2.1.3.The System View of IR2.2.A Brief Overview of PTMs in IR前言 因为文章篇幅较长,因此还在持续阅读中原文(F…

科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码

前情提要 如果有人看了我之前发的乱七八糟的博客的话,应该就能了解到,我之前是计算机专业大三的学生,好不容易get到了保研的名额,前段时间就一直在操练LeetCode,到处报夏令营啊,预推免什么的,最…

应该了解的网络知识

今天上午10:00参加了一个新华三杯,是关于计算机网络的,100道题,发现没有一道是自己会的,好歹也是学过一学期的计算机网络,到头来发现啥也不会,然后现在就又去复习一下网络。 OSI七层模型 *应用层…

VUE | “面包屑”的原理

最近我在写一个“项目”?遇到了以前没有接触到的一个知识点——“面包屑”。 写下来,我所理解的思路,一是为了看能不能帮助到大家,二是自己肯定不是已经完全理解、印在脑子里了,所以方便自己随时复习~ 我们先来看一下…

自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目

相关文章 [ >.<] 自动化测试项目学习笔记(一)&#xff1a;unittest简单运行&#xff08;初始化&#xff0c;清除&#xff0c;设置测试行为&#xff09;[ >.<] 自动化测试项目学习笔记(二)&#xff1a;学习各种setup、tearDown、断言方法[ >.<] 自动化测试项…

启发式算法之蚁群算法

&#x1f63b;今天我们来学习启发式算法中的蚁群算法&#xff0c;据说&#xff0c;蚁群算法是路径规划算法中’最好’的群智能算法。快让我们开始吧&#xff01; 目录1. 蚁群算法基本介绍1.1 算法简介1.2 算法原理2.蚁群算法的基本流程2.1 路径构建2.2 蚂蚁信息素的更新3. scik…

使用POI和EasyExcel实现Excel导入和导出功能

需求场景 开发中经常会设计到excel的处理&#xff0c;需求场景如下所示&#xff1a; 1、将用户信息导出为excel表格&#xff08;导出数据&#xff09; 2、将Excel表中的信息录入到数据库中&#xff08;导入数据&#xff09; 操作Excel目前比较流行的就是 Apache POI 和 阿里…

单片机通过WIFI模块(ESP8266)获取网络时间与天气预报

前几天发布了开源4.3寸触摸屏的文章 《开源4.3寸触摸屏》&#xff0c;里面有WIFI获取时间和天气预报相关的功能&#xff0c;今天就来介绍一下这个功能是怎样实现的。 1.底层驱动 首先&#xff0c;硬件上&#xff0c;单片机通过串口AT指令访问WIFI模块&#xff08;ESP12S&#x…

有营养的算法笔记(七)

字符串消除 1.题目描述 给定一个只由’a’和’b’组成的字符串str&#xff0c;str中"ab"和"ba"子串都可以消除&#xff0c; 消除之后剩下字符会重新靠在一起&#xff0c;继续出现可以消除的子串…你的任务是决定一种消除的顺序&#xff0c;最后让str消除到…

(附源码)计算机毕业设计SSM基于人脸识别和测温的宿舍管理系统

&#xff08;附源码&#xff09;计算机毕业设计SSM基于人脸识别和测温的宿舍管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09…

Redis 集群安装-Centos

Redis 集群安装-Centos Redis3.0以后的版本虽然有了集群功能&#xff0c;提供了比之前版本的哨兵模式更高的性能与可用性&#xff0c;但是集群的水平扩展却比较麻烦&#xff0c;今天就来带大家看看redis高可用集群如何做水平扩展&#xff0c;原始集群(见下图)由6个节点组成&am…

【图灵MySQL】MySQL索引优化实战(上)

【图灵MySQL】MySQL索引优化实战&#xff08;上&#xff09; 数据准备-SQL CREATE TABLE employees (id int(11) NOT NULL AUTO_INCREMENT,name varchar(24) NOT NULL DEFAULT COMMENT 姓名,age int(11) NOT NULL DEFAULT 0 COMMENT 年龄,position varchar(20) NOT NULL DEF…