当前位置: 首页 > news >正文

【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 网站点击交易可以看到具体地马蹄走向:
在这里插入图片描述这次的介绍到这里就结束了,下期再学习一下基本的语法,还是通过具体的实例合约来学习语法比较快,毕竟也是面向对象的语法,学起来还是有点基础的。

相关文章:

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

好久没有学习区块链方面的知识了&#xff0c;目前通过自学大致掌握了Fabric联盟链的搭建&#xff0c;链码编写、部署&#xff0c;api调用&#xff0c;可以独立开发出一些基于fabric的应用&#xff0c;感觉开发出去中心化的应用还是很有意思的&#xff0c;因为他与之前开发的ssm…...

ARFoundation系列讲解 - 92 涂鸦效果

--- 视频来源于网络,如有侵权必删 --- 案例中使用的软件版本 Unity2023.1.17.f1c1ARFoundtaion 5.1.0Apple ARKit XR Plugin 5.1.0 Google ARCore XR Plugin 5.1.0技术分析 我们可以实时检测用户手指触摸的屏幕位置,从触摸位置投射一条射线(Raycast),再射线命中的目标位置…...

立创eda专业版学习笔记(8)(运行模式)

以前没注意过这个问题&#xff0c;我有2台电脑&#xff0c;都能登录eda专业版&#xff0c;但是一台是全在线模式&#xff0c;另外一台是半离线模式&#xff0c;虽然是同一个账号&#xff0c;但是打开里面的工程会发现&#xff0c;两边的工程完全不同&#xff0c;因为一台的工程…...

349.两个数组的交集+350.两个数组的交集II(set/multiset)

目录 一、349.两个数组的交集 二、350.两个数组的交集II 一、349.两个数组的交集 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//…...

数据结构与算法之排序: 桶排序 (Javascript版)

排序 排序&#xff1a;把某个乱序的数组变成升序或降序的数组 (这里用数组来做举例) 桶排序 根据元素的取值范围&#xff0c;创建多个桶, 每个桶代表一个区间范围 创建桶的数量和范围需要尽可能保证元素能够被均匀分布 接下来将元素放进对应的桶中&#xff0c;分别对每个桶中…...

Android studio新版本多渠道打包配置

最近公司套壳app比较多 功能也都一样只有地址&#xff0c;和app名字还有icon不一样 签名文件也是一样的,所以就研究了多渠道打包 配置如下&#xff1a; 在app下build.gradle配置 因为最新版as中禁用了BuildConfig 所以我们需要手动配置一下 android { //TODO 其他省略buildFe…...

PTA:后序和中序构造二叉树

后序和中序构造二叉树 题目输入格式输出格式输入样例&#xff08;及其对应的二叉树&#xff09; 代码 题目 本题目要求用后序序列和中序序列构造一棵二叉树&#xff08;树中结点个数不超过10个&#xff09;&#xff0c;并输出其先序序列。 输入格式 在第一行中输入元素个数…...

二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!

在当今的软件开发领域&#xff0c;我们常常面对着与异构数据库和不同版本的API进行集成的挑战。这些系统和组件往往使用不同的数据结构和接口规范&#xff0c;导致我们的代码无法直接与它们进行交互。但是&#xff0c;不要担心&#xff01;今天&#xff0c;我将向你揭示一个神奇…...

K7系列FPGA进行FLASH读写1——CCLK控制(STARTUPE2原语)

最近的工作涉及对 FPGA 进行远程更新&#xff0c;也就是通过远程通信接口将 .bin 文件送到 FPGA&#xff0c;然后写入 FLASH&#xff0c;这样当 FPGA 重新上电后就可以执行更新后的程序了。因此第一步工作就是进行 FLASH 的读写控制。 然而如果尝试配置 FLASH 管脚时&#xff0…...

【Kafka】基本概念

文章目录 一、消息队列的流派1.1 有Broker1.1.1 重topic1.1.2 轻topic 1.2 无Broker 二、kafka安装三、kafka基本术语四、发送消息五、消费消息六、单播消息七、多播消息八、查看消费组的详细信息九、主题topic十、分区十一、kafka中消息⽇志⽂件中保存的内容 一、消息队列的流…...

如何在Vue3项目中使用防抖节流技巧

前言 防抖节流是可以说是一种优化组件性能的技巧&#xff0c;可以有效减少组件中的渲染次数和计算量&#xff0c;从而提高组件的响应速度和用户体验。在Vue3中可以使用lodash库中的debounce和throttle函数来分别实现防抖和节流。当然也可以自行设计实现防抖节流函数&#xff0…...

快速排序(Java)

基本思想 快速排序Quicksort&#xff09;是对冒泡排序的一种改进。 基本思想是分治的思想&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排…...

在ffmpeg中,如何把h264转换为rgb格式

在ffmpeg中&#xff0c;网络视频流h264为什么默认的转为YUV而不是其他格式 文章中介绍了&#xff0c;h264解码的时候是直接解码为yuv的&#xff0c;如果在使用的过程中 需要用到rgb的格式&#xff0c;我们该如何来转换这种格式呢&#xff1f; 在上面的文章中&#xff0c;我们已…...

【重磅】Cookies、headers、Session规律总结,搞定卡点

【重磅】Cookies规律总结,搞定卡点 登录后开始正式获取数据阶段: 不使用session: 放在请求头headers中 当如是:headers = {“user-agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36”,“Coo…...

【雷达原理】雷达杂波抑制方法

目录 一、杂波及其特点 1.1 什么是杂波&#xff1f; 1.2 杂波的频谱特性 二、动目标显示(MTI)技术 2.1 对消原理 2.2 数字对消器设计 三、MATLAB仿真 3.1 对消效果验证 3.2 代码 一、杂波及其特点 1.1 什么是杂波&#xff1f; 杂波是相对目标回波而言的&#xff0c;…...

Python-敲木鱼升级版(真手动版敲木鱼)

演示效果 需要安装的第三方库&#xff1a; pip install pygame # 加载音乐 pip install pillow # 加载图片 pip install mediapipe # 判断手势的模型 pip install opencv # 模型要用来处理图形 建议有独显和摄像头的可以尝试&#xff01; 想着升级一下玩法&#xff0c;只有真敲…...

Websocket @ServerEndpoint不能注入@Autowired

在websocket中使用ServerEndpoint无法注入Autowired、Value 问题分析 Spring管理采用单例模式&#xff08;singleton&#xff09;&#xff0c;而 WebSocket 是多对象的&#xff0c;即每个客户端对应后台的一个 WebSocket 对象&#xff0c;也可以理解成 new 了一个 WebSocket&…...

Unity热更新

1&#xff0c;热更新的概念与作用 app更新通常分为两类&#xff0c;一种是整包更新&#xff08;换包&#xff09;&#xff0c;一种是热更新&#xff08;不换包&#xff0c;通过网络下载&#xff0c;动态更新资源等&#xff09;。 整包更新&#xff0c;是指在需要更新时&#x…...

如何用维格云搭建和一键训练你的钧瓷AI机器人?

大禹智库 第69期(总第400期) 2023年11月4日 如何用维格云搭建和一键训练你的钧瓷AI机器人? 钧瓷私有数据聊天机器人是一种能够根据预设的数据集进行智能对话的机器人。通过维格云,我们可以轻松地搭建自己的钧瓷私有数据聊天机器人。本文将以钧道机器人为例,详细介绍如何…...

整理的一些Java细节问题

1. 为什么要有无参构造&#xff1f; 在 Java 中&#xff0c;如果一个类没有显式定义构造方法&#xff0c;编译器会自动生成一个默认的无参构造方法&#xff08;也称为默认构造方法&#xff09;。无参构造方法是一个没有任何参数的构造方法。 无参构造方法的存在有几个重要原因…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...