大数跨境

【学习专栏】学习 Solidity 第 1 部分:使用 MetaMask 进行合约开发

【学习专栏】学习 Solidity 第 1 部分:使用 MetaMask 进行合约开发 FastDaily
2022-05-05
1
导读:每天进步一点

转载请微信联系:huangdiezi,更多DAOWeb3NFTMetaverse资讯请关注老雅痞👇

亲爱的朋友们,大家好,我是公众号老雅痞的小编波动,雅痞哥为了敦促我学习区块链/DAO/NFT知识,我们将单独开始一个专栏,从零开始学习。每天在公众号FastDaily和老雅痞各更新一篇。


让我们每天学点新东西,争取不白活。


欢迎大家和我一起学习进步(微信yaoyaobigc)~揪咪~

Solidity简述

Solidity 是一种静态类型的编程语言,旨在开发在以太坊虚拟机(EVM) 上运行的智能合约。solidity是玩链上项目必备的技能:区块链项目大部分是开源的,如果你能读懂代码,能帮你规避很多坑。

我们将分2期来学习一下Solidity的简单原理。

学习开始之前,有一些准备工作需要就位。

卡尔弗洛施

Solidity 是以太坊以及与以太坊竞争的平台上的其他私有区块链上的主要语言。

我们将分2期来学习一下Solidity的简单原理。

学习开始之前,有一些准备工作需要就位。

你需要什么✅


1. **Chrome** 网络浏览器

2. **Metamask** Chrome 扩展程序 (https
://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn) Metamask 允许你签署以太坊交易*无需*运行完整的 Geth 节点。

合约编程关键术语


#### ETH ETH 是以太坊网络上的主要货币。但是,以太坊可以支持多种货币,而 ETH 最终不会有特权地位。

Gas费

在以太坊上执行交易要么运行计算,要么存储数据。这会消耗网络 CPU 周期或存储空间。该费用由发起交易的账户支付。付款称为“gas”费。Gas 目前使用 ETH 支付。在撰写本文时,1 GAS = 0.00001 ETH。

Morden

Morden 是最受欢迎的公共以太坊测试网之一的名称。它与以太坊网络相同,但 Morden 上的 ETH 一文不值。你可以在 Morden 上从许多 Morden“ETH faucets”免费获得 ETH。

设置 Metamask

为了轻松地将合约部署到 Morden,我们需要 Metamask。如果你还没有安装 Metamask,请先安装。

在 Chrome 的右上角,你现在应该可以看到可爱的小狐狸 :)

点击图标,让我们开始创建你的以太坊钱包吧!

同意服务条款。在撰写本文时,Metamask 是测试版软件,因此如果你想将它用于主网,请不要存储或交易超过你可能损失的金额。

现在单击创建新保险库。这将开始钱包生成过程。

输入密码。

注意:如果你想将此帐户用于任何有价值的事情,请使用存储在1PasswordLastPass等密码管理器中的随机生成的唯一密码。

备份你随机生成的“种子短语”。这是你的保管库主密码。要保证“种子短语”的安全,绝对不要将其发布在互联网上。

有趣的事实:你的帐户信息永远不会发送给网络上的任何人。它从未在某个数据库中注册过。为什么胆子这么大,不像那些中心化平台所做的验证账户名称呢?因为我们相信,两个人生成同一个帐户的概率非常低,这几乎不可能,所以默认大家生成的都是独一无二的。但是不能完全百分之百绝对排除重复的可能,它还是有一定可几率发生(尽管几乎可以肯定不会)。

恭喜!你现在有一个以太坊钱包。在左上角,你应该看到“Morden Test Net”。这是你当前连接的网络。你可以单击它并在测试网和主网之间切换。我们将留在Morden测试网上(这位很重要)

在上传我们的合约之前,我们会得到一点额外的 ETH 以防万一。为此,请单击“购买”。

你将被跳转到 MetaMask ether,你可以在其中单击“request 1 ether”,它应该会将其发送到你的帐户。如果你的 ETH 用完了,请回到这里

开始写我们的第一份合同!✏️

MetaMask 几乎已经设置好了。现在我们必须使用它!首先,去这个网站:

https://ethereum.github.io/browser-solidity

这是一个很好的基于浏览器的 Solidity 编辑器。它允许你部署合约并与合约交互。

访问该站点后,你将看到一个示例合同。忽略它——它很复杂不适合现阶段的我们。相反,单击框图标。(Browser Solidity 不是很直观,所以一开始自然会有些困惑)

确保Injected Web3已选中。如果是,则 Browser Solidity 识别出你正在使用 MetaMask,它将连接到他们的服务器。如果未选中,请确保 MetaMask 正在运行并刷新网页。

接下来,让我们看一下HelloWorld我们要部署到网络的合约:

contract HelloWorld {

event log_string(bytes32 log); // Event


function () { // Fallback Function

log_string("Hello World!");

}

}

什么是活动事件本质上是 EVM 中的日志。运行合约时,你可以调用事件并将你希望记录的数据传递给它们。在这种情况下,我们创建一个名为log_string(bytes32 log) 的自定义定义事件。这将记录我们作为参数传入的任何内容。

是什么function () {}这是一个后备功能。回退函数是在调用合约并且没有指定现有函数时调用的特殊函数。回退函数通常被使用,因为它们在用户将 ETH 发送到合约时执行,这就是我们使用它的原因。

如何运作?我们将把这个合约部署到测试网。完成此操作后,我们将向合约发送交易。然后我们将使用以太坊区块浏览器来读取日志。

让我们开始吧!首先,将HelloWorld合约复制到 Browser Solidity。完成后,单击Create

你现在应该会看到包含交易信息的通知。一旦获得批准,你的交易将被发送到以太坊网络。

注意:如果你没有立即看到此信息,请单击狐狸并确保你已登录。

现在,打开你的钱包并查看列出的交易。将鼠标悬停在它上面,然后单击它。这将带你到https://etherscan.io查看检查你的特定交易。

一旦在 Etherscan 上,你可能会看到你的交易是Pending。稍等片刻,然后刷新你的浏览器。部署后,单击新合约的地址。

在此页面上,可以检查所有涉及你的精彩合约的交易!我们想向联系人发送一个事务,这样它就会打印“Hello World!”,让我们复制它的地址。

再次打开 MetaMask,让我们发送交易!

将你的合约地址粘贴过来。或者,你可以向你的合约发送一些 ETH(即 0.1)以查看其余额增加。然后点击发送。

再次单击“批准”以发送你的交易。

MetaMask 现在应该列出你的新交易。单击它以在https://etherscan.io上进一步检查

差不多好了!只需点击Event Logs查看是否“Hello World!” 被记录!

这一长串十六进制的字符是在是太难记了!我们必须将十六进制代码转换为人类可读的 ASCII。

首先,复制那个可怕的十六进制,我们很快就会转换它。

前往
http://www.rapidtables.com/convert/number/hex-to-ascii.htm
并将十六进制粘贴到顶部框中。点击Convert ,等一下就好。

奖励积分:使用此图表手动将你的 hex 转换为 ascii:

 搞定!

你正式成为 Solidity 大师!但是要成为 Solidity 大师++,请查看第 2 部分,我们在其中部署了提交-显示风格的投票合约!(将在老雅痞公众号上推送。)

开篇第一课:什么是 DAO?

「DAO」剪刀标签Scissor Labels:关于叙述争夺、激励以及如何造成分裂

「DAO」为什么去中心化很重要

DAO 的定义:大局观

DAO《术语指南》:智能合约、自治代理、去中心化应用等

组织模块:DAO 工具的状态

社区≠营销:为什么我们需要进入社区,而不仅仅是进入市场

社区建设中的角色

如何通过培育社区来推动业务增长?

如何评估代币网络的社区建设人员

如何发展去中心化社区:代币网络的社区建设

关于社区的难事以及如何引导社区资源分配

开始建设社区?你必须掌握的这两个概念!

a16z:生物技术去中心化发展指南

小队财富经

无头品牌研究 上

无头品牌研究 下

所有权经济:加密和消费软件的下一个前沿(已经是了)

为创造者而来,为经济利益而留下——进入市场战略和创造者模式、组织模式、协议经济的三个阶段

V神:规避去中心化治理潜在风险,超越代币的投票治理

NFT 让互联网赋予用户所有权

NFT 初学者指南——它们是什么,为什么它们很有趣

NFT词典:你需要知道的所有术语和定义

NFT的标准:ERC721、ERC1155和ERC-998

NFT的元数据:链上与链下,存储解决方案

NFT Mint 的“关键点”:早期决策数据

NFT艺术超棒的 8 个原因——以及数字创意新经济

NFT 将如何为激情经济提供动力;关于Solana区块链和NFT,你需要知道的一切

加密货币将改变价值,NFT 将改变社会

策展人角色的作用,NFT 在哪里捕获价值?

NFT的2018-2019:回到建设

代币的货币数量计算方法

关于普通人参与加密世界的门槛的讨论:游戏、成本和可访问性

了解令牌速度:速度是影响长期非投机价值的关键杠杆之一

关于Tezos区块链和NFTs的一切知识
骗局解读:什么是NFT洗盘交易?它是一种犯罪吗?

稳定币概述

区块链到底是个啥?

区块链和比特币到底是怎么工作的?

区块链:硬分叉、软分叉、默认和强制

区块链经济:机构加密经济学初学者指南

「共识」以太坊是如何运作的?上

「共识」以太坊是如何运作的?下

共识比较:Tendermint BFT 与 EOS dPoS

「V神亲笔」权益证明设计理念

加密代币:开放网络设计的突破

比特币和以太坊的去中心化对比

胖协议Fat Protocols的作用

什么是闪电网络Lightning Network,它如何帮助比特币扩展?

如何保护您的智能合约:6 个 Solidity 漏洞以及如何避免它们(上)

如何保护您的智能合约:6 个 Solidity 漏洞以及如何避免它们(下)

Keepers——维护区块链网络的工人

什么是 zkSnarks 以及它们为什么重要

信任信息协调问题:如果TCR不起作用

去中心化的速度:零知识证明的进步

什么是恶意收购(以及为什么它们通常注定要失败)

如何在 21 世纪构建新的支付基础设施

关于货币如何在银行系统中流动的简单解释和这与比特币发展的关系

V神:关于言论自由

游戏玩家想要具有真实世界价值的虚拟商品

以太坊智能合约指南

如何在以太坊上编写自己的 CryptoKitties 风格游戏

Web3 安全性:攻击类型和经验教训

软件使设计自动化,这对设计师意味着什么?

【声明】内容源于网络
0
0
FastDaily
日更新闻
内容 2683
粉丝 0
FastDaily 日更新闻
总阅读593
粉丝0
内容2.7k