http://www.xiaoyenzi.com

了解加密货币开发

“你读的越多,你知道的东西就越多。你学的越多,你去的地方就越多。“ - 苏斯博士
大多数企业领导者都不知道的事实是,在以太坊开发加密货币非常简单。开发人员发现他们一旦开始编写智能合约。对于那些没有信心代码的人来说,加密货币仍然是神秘而复杂的。
  担任TechHQ首席架构师的部分  工作是以他们理解的方式向首席执行官讲授区块链技术,以便我们可以在他们的业务流程下设计技术。我经常看到他们认为加密货币太复杂而无法理解。
在本文中,我将解释加密货币和代币在考虑商业用户时的作用。我也将向您展示代码,因为一旦他们发现加密货币的代码适合页面,大多数非开发人员都会感到不那么害怕。
 
大多数企业领导者都不知道的事实是,在以太坊开发加密货币非常简单。
请注意,本文引用了以太坊中的加密货币和令牌,以及其他分布式计算机(如Hyperledger)。在自己的专用区块链(如比特币)上运行的加密货币的开发要复杂得多。
你准备好了吗?握住我的手,进入兔子洞......

Cryptocurrencies

在研究加密货币时,每个人都会首先听到有关ERC20术语的内容。ERC是以太坊GitHub存储库  中的标签  ,意味着有人需要对某些内容进行正式反馈。在以太坊的早期,有人想要获得加密货币规范的反馈,并获得了  ERC20  标签。这就是历史经常如此,没有多少思考。
请查看  OpenZeppelin的ERC20实现该合同是大多数加密货币的基础。如果您不了解太多代码,请不要担心。注意它只有228行代码,其中三分之二是注释。它不可能那么复杂。
您可以按原样部署ERC20  合同,并且您将拥有加密货币。您很可能希望添加一些功能,如  令牌符号和小数,或  转移限制,或  停止转移到无效帐户所有这些变化只是为ERC20  合同添加更多方法的  规范他们之间并没有那么不同。
您可以按原样部署ERC20合同,并且您将拥有加密货币。
如果您需要为加密货币添加功能,则无需在互联网上搜索某些符合您需要的ERC令牌。Cryptocurrencies是软件应用程序,非常简单。例如,如果您需要跟踪谁是您的令牌持有者,您只需  添加一个数据结构  到您的加密货币,该数据结构存储该信息并在需要时更新它。你可以搞砸了。去野外。
回顾一下,以太坊中的加密货币是:
  • 简单的软件应用程序
  • 可能遵循一些标准
  • 可能包括ERC20
  • 并可能有一些自定义代码。
在下一节中,我们将进入代码以进一步细分。我们将摆脱更复杂的问题,以获得令牌的非常简单的核心。

城里最简单的加密货币

在  从OpenZeppelin ERC20实施  有三个合同变量和13点的方法。合同变量是存储在合同中的数据。这些方法是合同可以对合同变量和从外部传递的数据做的事情。
将合同视为在云中运行的应用程序,您可以在其中激活其方法,但不能激活其他方法。合同坐在那里等待某人要求某事,然后返回一个值或更新其合同变量。
为了编写一个非常简单的加密货币,我将从ERC20中获取一些东西   ,我将丢弃其余的东西。
我将在合同中保留一份余额分类账。在我的加密货币中,每个地址都与某个值有关。换句话说,每个帐户都有一些令牌。
我只会实现四种方法来检查余额,创建令牌,销毁令牌和转移令牌。有了这个功能,我有一个加密货币,我可以用来付款。整个合同如下:
contract Cryptocurrency {
  mapping (address => uint256) private _balances;
  // Return the amount of tokens held by an account.
  function balanceOf(address account) 
    public view returns (uint256) 
  {
    return _balances[account];
  }
  // Moves an amount of tokens from a sender to a recipient.
  function transfer(address send, address recv, uint256 amount)
    internal
  {
    _balances[send] = _balances[send] — amount;
    _balances[recv] = _balances[recv] + amount;
  }
  // Creates an amount of tokens and assigns them to an account.
  function mint(address account, uint256 amount) 
    internal
  {
    _balances[account] = _balances[account] + amount;
  }
  // Destroys an amount of tokens from an account.
  function burn(address account, uint256 amount) 
    internal
  {
    _balances[account] = _balances[account] — amount;
  }
}
以太坊中的加密货币可以像数据结构一样简单,每个账户都有余额,还有一些功能可以管理这些余额。
既然您知道加密货币是什么,那么您可以根据您的业务模型开始添加更多功能。至少你应该实施  ERC20  标准并使用 SafeMath,上述合同用于教育目的。

令牌

我喜欢使用  加密货币  和  令牌  作为两个不同的术语。我喜欢说令牌是你可以拥有的东西,而加密货币是你可以拥有并且可以用来支付东西的东西。
不是加密货币的令牌的一个示例是使用ERC721  标准实现的合同  当人们谈论标记化时,你会听到这个。ERC721  标准的目的  是使其每个令牌代表区块链中的实物资产。
在技​​术方面,它将ERC20的余额分类帐替换为记录每个代币的持有者的表:
mapping (uint256 => address) private _tokenOwner;
有了这个标记,我不是说Bob有100个令牌,而是说Bob有令牌#100,#42和#1337。为ERC20描述的四种方法稍有改变,但实质上这是ERC20加密货币合约和ERC721  令牌合约之间的区别  
到目前为止,您已经看到加密货币和令牌是一个表,其中包含一些操作数据的方法。令牌的描述非常灵活,您可以将许多内容描述为令牌。
当我设计解决方案时,我可能会养成创建许多不同令牌的习惯。它很容易做,因为它们只是将用户链接到他们拥有的东西的表。我会在它们合适的时候使用ERC标准,但我经常会从头开始编写令牌合同。
令牌的描述非常灵活,您可以将许多内容描述为令牌。
支付代币,另一种代表投票权,另一种代表某种资产等。营销团队总是抗议 - 有四个代币的解决方案太复杂而无法销售!他们是对的。我让他们的生活变得艰难。
修复非常简单。如果软件设计包含太多令牌,我会 从描述中删除  令牌我将拥有投票权,资产密钥,用户句柄或我可以提出的任何名称,不使用令牌这个词并且不会引起注意。每个人都很开心。令牌只是一个表和一些方法。

结论

使加密货币成为可能的技术很复杂。使用这些工具创建加密货币的代码不是。区块链领域的商业领袖在尝试理解加密货币和代币的基础知识方面做得很好。突破显而易见的复杂性将有助于他们将  业务创意传
达给开发团队
在本文中,我将加密货币和令牌的概念分解为最低限度,甚至低于大多数区块链应用背后众所周知的ERC20标准。从最小的起点开始,在添加业务功能之前,我已经表明加密货币和令牌在核心非常简单。
您对区块链解决方案有什么想法吗?您是否了解您的业务,但很难找到能说您的语言的技术专家。请随时与我联系,我喜欢将业务和技术结合在一起。
作者:Alberto Cuesta Cañada
来源:https://hackernoon.com/understanding-cryptocurrency-development-6480d61cece4

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。