主页 > imtoken安卓版下载 > 玩区块链游戏CryptoKittes,学习区块链技术赚取ETH

玩区块链游戏CryptoKittes,学习区块链技术赚取ETH

imtoken安卓版下载 2023-06-12 08:10:18

为了方便读者更清楚地阅读本文以太坊 扫描交易块,先列出本文的内容大纲:

以太坊开发技术基础以太坊概述

以太坊是可编程的区块链,被业界公认为区块链2.0的代表项目。 以太坊可以理解为一个操作系统,使用Solidity等语言编写智能合约并在链上发布应用,使用Go、Java、Python、JavaScript等语言调用链上智能合约进行读取并写入区块链数据。 这样就实现了各种区块链应用。

比特币的总量上限为2100万,而以太坊内置的代币以太币(Ether)则没有确切的总量上限。 目前,以太坊大约每 15 秒产生一个新区块,一个新区块奖励矿工 3 ETH。 以太坊的设计者认为,随着时间的推移,硬币总是会因为粗心和死亡而丢失。 假设币种损失占年货币供应量的固定比例,最终流通中的货币总供应量将稳定在等于年货币流通量除以损失率的值以太坊 扫描交易块,这样供应量就会稳定。

比特币缺乏图灵完备性。 比特币脚本语言虽然可以支持多次计算,但不能支持所有的计算,比如for循环。 以太坊是准图灵完备的。 添加“准”的原因是智能合约在以太坊区块链上执行时受到限制。 在以太坊区块链上执行交易(转账、调用智能合约)需要消耗 Gas。 一般来说,操作步骤越复杂,需要的Gas越多,一个区块有一个Gas上限(目前800万左右)。 对普通账户的转账操作目前消耗 21,000 Gas。 当区块Gas上限为800万时,假设在智能合约中调用一个函数会向400个账户转账,因为至少会消耗400 * 21,000 = 820万个Gas,超过区块Gas上限800万,合同调用将失败。

更详细的以太坊介绍可以参考:以太坊白皮书和以太坊黄皮书。

坚固性

Solidity 是一种语法类似于 JavaScript 的高级语言。 编译Solidity代码可以生成以太坊虚拟机代码。 Solidity 是一种静态类型语言,支持继承、库和复杂的用户定义类型等特性。 可以使用 Solidity 轻松创建用于投票、众筹、封闭式拍卖、多重签名钱包、CryptoKitties 等游戏的智能合约。

由于以太坊区块链的限制,无法在链上读取链下数据,无法使用Solidity调用传统API,例如无法调用天气网站提供的天气API。 此外,在以太坊区块链上,程序无法在指定时间自动运行。 为了真实性,猫咪游戏不会在猫咪怀孕后立即生下小猫,而是在满足一定条件后需要触发猫咪分娩功能为猫咪提供分娩服务。 一些开发者也可以根据游戏的这个功能来赚钱。 猫的送货费将在后面详细说明。

etherscan.io 提供验证程序源代码的服务。 原理是使用公开的代码和指定的编译器版本重新编译程序,然后与以太坊发布到区块链上的二进制代码进行比较。 如果它们是一致的,则意味着公共代码是运行在区块链上的代码。 代码。 下图是验证码的截图。

1

您可以访问此处以了解有关 Solidity 的更多信息。

ERC-20 和 ERC-721

ERC-20和ERC-721都是以太坊EIP(Ethereum Improvement Proposal,以太坊改进协议),更多EIP请看这里。

ERC-20定义了一个代币标准,可以理解为定义了一个接口类。 在实现具体的ERC-20代币时,需要给出各个接口的具体实现,比如获取代币名称、代币符号、总供应量、小数位数、转账等。使用ERC-20可以大大降低成本发行硬币。 发行方无需开发钱包和区块链浏览器,交易所可轻松支持新代币的充值、提现等操作。

ERC-20币是同质的,你的一枚币等于我的一枚。 ERC-721是一种不可替代的代币(Non-fungible Tokens)。 每个 ERC-721 都有一个唯一的 ID。 转账时不再是转多少币,而是某个tokenId,比如transferFrom:

function transferFrom(address _from, address _to, uint256 _tokenId) external payable;

神秘猫执行 ERC-721 规范。 每只猫都有一个唯一的 ID。 当玩家花费ETH购买一只猫时,智能合约会调用transferFrom修改猫的主人。

搭建以太坊全节点

我用的是Ethereum Go客户端搭建的全节点,参考文档在这里。 几点注意事项如下: