【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,然后新建一个合约(如下左图)

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

相关推荐
BSV区块链2 天前
关于BSV区块链覆盖网络的常见问题解答(上篇)
网络·区块链
荔家大少2 天前
区块链媒体推广:15个数字解读未来-华媒舍
大数据·区块链·媒体
0x派大星3 天前
Solidity 存储和内存管理:深入理解与高效优化
web3·区块链·智能合约·solidity
0x派大星3 天前
Solidity智能合约中的事件和日志
web3·区块链·智能合约·solidity
_.Switch4 天前
Python Web WebAssembly 与 Python 的协同工作
前端·python·安全·架构·区块链·智能合约·wasm
CertiK4 天前
CertiK《Hack3d:2024年第三季度安全报告》(附报告全文链接)
安全·web3·区块链
Sui_Network5 天前
Sui主网升级至V1.34.2
运维·服务器·物联网·架构·区块链
杏酸雪菲期权5 天前
期权卖方怎么选择权利金高的品种,期货VIX高低对行情有什么影响
区块链
CertiK5 天前
Techub专访顾荣辉教授:解密CertiK的安全战略路线
安全·区块链·web3.0
苏格拉真没有底5 天前
Web3.0 应用项目
区块链