【Solidity】Remix在线环境及钱包申请

好久没有学习区块链方面的知识了,目前通过自学大致掌握了Fabric联盟链的搭建,链码编写、部署,api调用,可以独立开发出一些基于fabric的应用,感觉开发出去中心化的应用还是很有意思的,因为他与之前开发的ssm项目这种传统中心化的app相比具有自己独特的优点。第一次开发出来很有成就感,并且还申请了自己的软著。
在这里插入图片描述

但是最近看论文,感觉有很多的实验都是用公链做的,基本上都是Ethereum,使用的是Solidity语言来编写的智能合约,所以自己就学习了一下。希望通过笔记给自己带来更深刻的学习印象。

1. 什么是Ethereum?

Ethereum是公有链的一种,中文称之为以太坊。和区块链类似,他也有自己的代币,叫作以太币。Ethereum使用的共识合约是PoS。
在这里插入图片描述
感兴趣的朋友可以去看我前面的博文 区块链博文
以太坊是区块链2.0时代的代表性产物,其推出了图灵完备的智能合约,这一创新为区块链和分布式应用带来了革命性的变化。我们可以通过创建自己的智能合约并且在缴纳一定的gas(可以理解成让矿工帮助执行合约的小费)后,就能够在分布式的区块链上运行自己合约并且执行相应的功能。它们可以用于各种领域,如去中心化金融(DeFi)、数字身份、供应链管理、社交媒体和游戏。

而现实世界就是通过智能合约来和区块链上的世界创建联系。好比区块链是一个很大的分布式数据库,而写合约就像是写sql一样面对区块链上的数据进行了各种操作。可见智能合约的编写是运用区块链技术的核心技术。而以太坊使用最广泛的编程语言来实现智能合约的就是Solidity。Solidity 是一种面向合同的智能合同编程语言,特别设计用于创建以太坊和以太坊兼容区块链上的智能合同。

2. Solidity开发Remix环境初识

开发Solidity我选择的是在线开发工具Remix,比较方便而且现在大家的网络都是比较好的,使用这个在线的开发工具感觉还是挺不错的。余运行环境可以采取metamask这个网页钱包,后面会介绍。
http://remix.ethereum.org/ 这个就是Remix的在线开发地址:
在这里插入图片描述在左侧的导航栏我们可以先来看一下官方提供的合约:
在这里插入图片描述想必大家一眼看上去很熟悉吧,没错,Solidity也是一门面向对象的语言,有着编程基础的上手起来也是不难的。现在来写一个简单的hello合约,先在导航栏右健contract,然后新建一个合约(如下左图)
图1图2

// SPDX-License-Identifier: GPL-3.0//pragma solidity >=0.8.2 <0.9.0;
pragma solidity^0.8.11; // 代表向上兼容contract hello {string hellomsg;//just like constructor in javaconstructor(string memory _hellomsg){hellomsg = _hellomsg;}
}

在编写完成后,直接ctrl+s后编译,编译完成后如上右图所示。然后我们点击导航栏第四个以太坊图表的那个按钮就可以部署了:
在这里插入图片描述并且我们可以部署多次每一次运行出来的合约对象都是不一样的。每运行一次就会产生一个合约对象并且每个合约对象都有一个地址,比如我这里运行了两次,第一次的地址0xd9145CCE52D386f254917e481eB44e9943F39138,而第二次的地址:0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8
在这里插入图片描述
再来介绍一下一些其他功能,“ENVIRONMENT” 代表你要选择的以太坊区块链环境或模拟环境,用于测试和运行你的智能合约。
在这里插入图片描述

Remix VM” 代表 Remix 的本地虚拟机环境,用于模拟以太坊网络以进行智能合同开发和测试。这是 Remix 提供的一个内置的虚拟以太坊网络环境,允许开发者在本地进行智能合同的测试,而不需要连接到实际的以太坊网络。当然我们也是可以连接到实际的以太坊网络中来部署我们的合约的,我的截图中的MataMask就是实际的以太坊网络。
在这里插入图片描述

3. metamask安装

安装地址:https://metamask.io/ 注意科学上网
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
请注意一定要保管好自己的助记词,这相当于你的密钥。
在这里插入图片描述
现在拥有了自己的钱包之后,需要去网站来申请到一些免费的代币。
在与以太坊(Ethereum)和其他区块链网络交互的钱包或应用程序中,“水龙头”(Faucet)是一个常见的术语,指的是一个允许用户获取免费加密货币的服务或工具。这通常是为了帮助新用户获得一些加密货币,以便他们可以开始在区块链网络上执行交易或与智能合同互动。
MetaMask 是一款以太坊钱包扩展,它允许用户管理以太坊资产、进行交易和与智能合同互动。一些以太坊网络提供了水龙头服务,这意味着用户可以通过水龙头获取一定数量的免费以太币(ETH)用于测试和学习以太坊网络。这些免费以太币通常用于支付交易费用(Gas)以及与智能合同互动。
用户通常需要提供自己的以太坊地址(Ethereum address),然后水龙头会将一定数量的ETH发送到该地址。请注意,这些水龙头通常用于测试和学习,分发的ETH数量可能有限,并且可能在一定时间后停止分发。如果您是新手或想要尝试以太坊网络的功能,可以尝试寻找适用于您的以太坊网络的水龙头服务。

在这个网站目前可以申请到免费的代币 mumbaifaucet.com
在这里插入图片描述
将你的以太坊地址输入点击Send Me MATIC即可。如果交易没有直接成功的话,就打开安装的metamask,应该会看到允许链接之类的操作,点击即可。获取到matic后,需要将网络连接到到这个mumbai的网络,在这个网络上才可以使用它的代币。通过 chainlist.org 这个网站,
在这里插入图片描述此时点开matamask允许连接到mumbai,就会看到我们的网络中多一个mumbai
在这里插入图片描述

然后我们可以使用Mumbai网络连接到真实的网络来部署合约了,只需要将网络切换到MetaMask即可。
在这里插入图片描述
在部署合约后,钱包会通知你是否同意花费gas去部署,点击确认后就会部署到实际的网络中
在这里插入图片描述
在之前的 mumbaifaucet.com 网站点击交易可以看到具体地马蹄走向:
在这里插入图片描述这次的介绍到这里就结束了,下期再学习一下基本的语法,还是通过具体的实例合约来学习语法比较快,毕竟也是面向对象的语法,学起来还是有点基础的。

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

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

相关文章

数据集:机器人理解世界的关键

原创 | 文 BFT机器人 传统的机器人和工业自动化解决方案已经颇有成效。在工厂中入驻自动化机器人可以快速地帮助工人们完成长时间重复劳动的任务。随着用工成本上涨、技能人才短缺、工作环境恶劣等问题的凸显&#xff0c;社会更迫切地需要采用自动化设备代替人工来完成该类操作…

Pod控制器详解

目录 一、Pod控制器及其功用 二、Deployment控制器 三、StatefulSet控制器 四、DaemonSet控制器 五、Job控制器 六、CronJob 控制器 一、Pod控制器及其功用 Pod控制器&#xff0c;又称之为工作负载&#xff08;workload&#xff09;&#xff0c;是用于实现管理pod的中间层…

flink状态和检查点

检查点和状态后端的区别 检查点 就是某个时间点下的所有算子的状态快照。这个时间点就是等所有任务将“同一个数据”处理完毕的时候。 状态后端&#xff1a;是一个管理状态的组件&#xff0c;还负责将本地状态&#xff08;检查点&#xff09;持久化到远程文件存储系统中。 分…

解析找不到msvcr100.dll文件的解决方法,4个方法修复msvcr100.dll

msvcr100.dll是Microsoft Visual C 2010运行库的组成部分&#xff0c;一些基于Visual C开发的软件运行时会依赖这个dll文件。出现“找不到msvcr100.dll”的错误提示&#xff0c;往往意味着这个文件在你的计算机系统中丢失或损坏&#xff0c;导致相关程序无法正常运行。以下是找…

大数据之LibrA数据库系统告警处理(ALM-12028 主机D状态进程数超过阈值)

告警解释 系统每30秒周期性检测主机中omm用户D状态进程数&#xff0c;并把实际进程数和阈值相比较。主机D状态进程数默认提供一个阈值范围。当检测到进程数超出阈值范围时产生该告警。 平滑次数为1&#xff0c;主机中omm用户D状态进程数小于或等于阈值时&#xff0c;告警恢复…

MSQL系列(十四) Mysql实战-SQL语句 left join inner join On和Where语句的区别

Mysql实战-SQL语句On和Where语句的区别 前面我们讲解了Join的底层驱动表 选择原理&#xff0c;也知道了基本的内连接外连接两种SQL查询表连接方式 但是我们再查询多表的时候on和where语句到底有什么区别? where是过滤条件 ,不满足where的一定不会出现在结果中on是连接条件, …

[MICROSAR Adaptive] --- Hello Adaptive World

Automotive E/E Architecture and AUTOSAR Adaptive Platform Vector Solution: MICROSAR Adaptive First project: Hello Adaptive World Summary 1 引言 1.1 AP诞生的历史背景 新一代电子电器架构通常将车内的节点分为三类。计算平台,预控制器和传感器执行器相关的节点,…

怎样选择文件外发控制系统,让数据实现高效安全交换?

制造型企业都非常重视其知识产权&#xff08;IP&#xff09;的安全性&#xff0c;尤其是其最有价值的产品设计数据的安全问题。基于复杂的供应链生态&#xff0c;每天可能要与几十家甚至上百家供应商及合作伙伴进行数据交换。不管是一级还是二级供应商&#xff0c;合作伙伴还是…

【黑马程序员】SpringCloud——微服务

文章目录 前言一、服务架构演变1. 单体架构2. 分布式架构2.1 服务治理 3. 微服务3.1 微服务结构3.2 微服务技术对比3.3 企业需求 二、SpringCloud兼容性 三、服务拆分及远程调用1. 服务拆分1.1 服务拆分注意事项1.2 导入服务拆分 Demo 2. 远程调用2.1 根据订单 id 查询订单功能…

Synthetic Data Generation with Large Language Models for Text Classification

本文是LLM系列文章&#xff0c;针对《Synthetic Data Generation with Large Language Models for Text Classification: Potential and Limitations》的翻译。 基于大型语言模型的文本分类合成数据生成&#xff1a;潜力和局限性 摘要1 引言2 相关工作3 方法4 评估1&#xff1…

软考 系统架构设计师系列知识点之边缘计算(2)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之边缘计算&#xff08;1&#xff09; 所属章节&#xff1a; 第11章. 未来信息综合技术 第4节. 边缘计算概述 3. 边缘计算的特点 边缘计算是在靠近物或数据源头的网络边缘侧&#xff0c;融合网络、计算、存储、应用核心…

JAVA客户端使用账号密码调用influxdb2报错:{“code“:“unauthorized“,“message“:“Unauthorized“}

问题&#xff1a;JAVA客户端访问influxdb2报错 说明&#xff1a;当前influxdb版本&#xff1a;2.6.1 使用依赖&#xff1a; <dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.10</vers…

IDEA插件分享:代码零入侵,后端神器

今天给大家介绍一款好用的IDEA插件&#xff1a;Apipost-Helper-2.0。非常好用&#xff01;主要包含以下功能&#xff1a; 1、无侵入生成API文档 编写完代码后&#xff0c;只需右键upload同步接口即可快速将源码中包含的API以及注解自动生成API文档&#xff0c;并生成可以访问…

Django ORM:数据库操作的Python化艺术

Django的对象关系映射器&#xff08;ORM&#xff09;是其核心功能之一&#xff0c;允许开发者使用Python代码来定义、操作和查询数据库。这篇文章将带你深入了解Django ORM的强大之处&#xff0c;从基本概念到高级查询技巧&#xff0c;提供丰富的示例帮助你掌握使用Django ORM进…

说说你在React项目是如何捕获错误的?

一、是什么 错误在我们日常编写代码是非常常见的 举个例子&#xff0c;在react项目中去编写组件内JavaScript代码错误会导致 React 的内部状态被破坏&#xff0c;导致整个应用崩溃&#xff0c;这是不应该出现的现象 作为一个框架&#xff0c;react也有自身对于错误的处理的解…

vuecli3 批量打印二维码

安装以个命令: npm install qrcode --save npm install print-js --save 页面使用: import qrcode from qrcode import printJS from print-js <el-button type"primary" click"handleBulkPrint">批量打印</el-button>methods: {// 批量打印…

c++ 信奥赛编程 2049:【例5.19】字符串判等

#include <iostream> using namespace std; string strlwr(string s) { for(int i0;i<s.size();i){if(s[i]>A && s[i]<Z)s[i]s[i]-Aa;}return s; } int main() {string str1,str2; //定义两个字符串变量 getline(cin,str1); //通过函数输入字符串 getl…

JavaWeb 学习路线

JavaWeb 学习路线 基础知识 1. Java基础 数据类型、循环、条件语句等基本概念面向对象编程&#xff08;OOP&#xff09;的概念和实践 2. Java核心 集合框架、异常处理、多线程等I/O流、网络编程基础 3. Servlet基础 Servlet生命周期HTTP协议和请求/响应概念 Web开发 1…

集成运算放大电路

引用原文链接&#xff1a; 集成运放及其经典电路详解 - 知乎 (zhihu.com) 1、 反比例运算放大器 输入负电压则输出正电压&#xff0c;输入正电压则输出负电压 2、同相放大电路&#xff08;同相指输入电压与输出电压的位相相同&#xff09; 输入负电压则输出负电压&#xf…

LeetCode----188. 买卖股票的最佳时机 IV

 题目 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多可以买 k 次&#xff0c;卖 k 次。 注意&#xff1a;你不能同…