以太坊以零为英雄:建立我们的第一个合同
这是我们以太坊从零到英雄指南的第三部分。 如果您尚未阅读上一篇文章,我强烈建议您在继续之前进行检查。
在这篇文章中,我们要离开了,开始开发基本的智能合约,并了解有关稳定性和合约如何工作的更多信息。
以太坊区块链最有趣的特性之一就是创建数字令牌的能力 。 代币是数字资产,可以代表从硬币 , 忠诚度积分到物理世界中实际对象的任何事物。 令牌也可以用于与其他智能合约进行交互。
代币在以太坊网络内以加密货币的形式出售和交易,并允许用户支付智能合约交易费用,对于我们的第一个合约,我们将创建部署在专用网络上所需的最低可行合约 。
关于ERC20的话
通常在处理令牌时,您会看到被引用的单词ERC20。 ERC20是一个代币标准,描述了以太坊代币合约必须实现的功能和事件,通过遵循该标准,我们保证代币将立即与以太坊钱包以及使用同一标准的任何其他客户或合约兼容。
为了使令牌成为ERC20投诉,它必须执行以下操作:
有关ERC20标准的更多详细信息,请查看以下链接:
以太坊钱包
以太坊钱包是通往以太坊区块链上去中心化应用程序的门户。 它使您能够持有和保护以太坊上构建的以太币和其他加密资产,以及编写,部署和使用智能合约。
到目前为止,我们已经直接在Geth控制台上工作了,尽管我强烈建议以太坊开发人员熟悉并熟悉Geth ,以便了解一些以太坊内部工作原理,以便更快地移动并更智能地工作,但我们将切换到以太坊官方钱包:
在继续之前,请确保下载并安装以太坊钱包。
将钱包连接到我们的私人测试网
默认情况下, 以太坊钱包将尝试连接到主网络,也将允许您连接到其中一个测试网络。
为了我们的目的,我们希望它自动开始连接到我们的测试网,因此在打开钱包之前,请执行以下操作:
免责声明 :以下操作将覆盖主网络的所有本地信息,这可能会导致以太网丢失,请小心并了解正在运行的命令。
- 停止正在运行的geth节点
- 运行以下命令
geth --datadir ./TestNetData --identity "HeroNode1" --ipcpath ~/Library/Ethereum/geth.ipc --networkid 24 --maxpeers 1 console
现在我们可以打开以太坊钱包,它应该自动连接到测试网络,我们的工作是重新启动Geth节点,并将IPC(进程间通信)管道设置在钱包具有默认值的同一位置,方法是:因此,钱包将直接建立与我们的Geth节点的连接,而不是与主网络建立连接。
在继续操作之前,请确保钱包将网络名称显示为Private-Net 。
最低可行代币
正如我们在本系列的第一篇文章中了解到的那样,合同是使用Solidity语言编写的。 有多种工具可用于编译 , 调试和编写 Solidity合约,目前,我们将使用以太坊钱包随附的Solidity合约编辑器。
这是我们最小可行令牌的代码:
现在,从上方抓取源代码并将其粘贴到Solidity Contract源代码字段中 。 钱包将自动检查代码是否编译 ,如果编译成功,您将在右侧看到“选择合同”下拉列表,如下所示:
需要注意的一件事是,还有一个构造函数参数,在这种情况下,是最初提供的Hero Tokens ,这将在合同创建时出现问题。
如果继续向下滚动,则会看到该合约的计算成本估算 ,并且可以选择愿意支付多少以太币的费用。 不要忘记设置我们将发行的令牌的初始数量,现在继续并单击“部署”按钮。
接下来,您将看到类似以下的确认对话框:
合同提交后,您应该在下面的最新交易中看到它,等待确认。 通常,确认合同大约需要30秒钟,但是,此时,我们可以等待,并且不会发生任何事情。
这是因为网络中没有其他节点,也没有人在挖矿,而且以太坊就像比特币一样,现在可以作为工作量证明网络,我将不赘述,但是您可以阅读以下文章以获取详细信息。说明:
让我们进入节点控制台并输入以下内容来验证我们的合同:
miner.start()
确认合同大约需要12笔交易,完成后,我们可以通过键入以下内容来停止矿工:
miner.stop()
查看最近的交易,现在应该验证我们的合同,我们可以通过进入“ 合同 ”选项卡来确认这一点,并且应该看到我们新创建的合同。
单击它转到其页面。 单击“复制地址”,然后将合同地址粘贴到文本编辑器中,您很快就会需要它。
如果单击您的钱包地址,则表明没有这些令牌,这是不是出了问题? 好吧,钱包只跟踪它知道的令牌 ,我们还没有告诉我们的钱包跟踪我们全新的令牌。
跟踪令牌
- 转到合同页面
- 点击观看令牌按钮
- 将显示一个弹出窗口,复制合同的地址以及确保输入所有详细信息
- 点击确定
现在,如果您返回到钱包,您应该会看到它正在跟踪令牌,如下面的屏幕截图所示。
恭喜你! 您已成功创建了第一个令牌。
下一步
虽然我们成功创建了一个基本令牌,但现在并不是每个有用的功能。 在下一篇文章中,我们将改进HeroToken合同并添加更多高级功能。
本文最初发布 在我自己的网站上 。
From: https://hackernoon.com/ethereum-zero-to-hero-developing-our-first-contract-d8578c040475