2018-8-19 学习区块链几天的总结

1.2.3.4.5

这篇文章是什么

总结一下这几天(2018年8月)学区块链的结果

这篇文章对谁有用

对区块链有兴趣的程序员
背景:我是做 Web 开发的程序员

正文

以下无特别顺序,想到哪写到哪儿
如果有错欢迎来信 guokrfans#gmail.com 指正。

  1. 发行代币(token)的做法是写一个智能合约,这样就行了
  2. DApp 这个词的意思是 decentralized application,"去中心化应用",就是基于区块链之上的应用。
  3. 写 DApp 也是写一个智能合约。前端依然用 HTML/CSS/Javascript,后端就不是传统的服务端语言+一个数据库了,比如 PHP + MySQL,就没有这俩了,可以直接和区块链交互。比如这个 App:https://unforgettable.nasd.app/#/ 当然如果要有也行。只是说这些玩具 DApp 里可以完全没有后端
  4. 前端依然是传统的技术结构(HTML/CSS/JS)前端还是放在中心服务器上,只是后端换成了区块链。如果要完完全全的前后端都是分布式,没有中心服务器。可以看看 IPFS,我在 Youtube 上看过一些 IPFS 教程,更细节的东西就没看了。我觉得不靠谱。IPFS 还太年轻,对于大型 web 应用可能扛不住(我猜的啦)
  5. 智能合约和普通的账号都有一个地址,比如 n1mFGEFDaYDgNKSdVaKLetv7ycRXvuGR9PK
  6. "Token 转账"就是执行代币智能合约里的 transfer 方法,为了执行智能合约,需要填合约的地址。比如上面的 n1mFGEFDaYDgNKSdVaKLetv7ycRXvuGR9PK
  7. 因为代币是靠合约来做。所以代币的名字和符号没有唯一性,可以任意重名,你可以发布10个代币智能合约都叫 hahaCoin, 符号 hc。唯一性是靠合约地址来判断的。而不是名字。
  8. 用来做代币的智能合约是有标准的,比如以太坊的代币合约叫 "ERC20"。这个最流行
  9. Solidity 是用来写以太坊智能合同的语言。语法不难,只是需要时间学习
  10. "星云链(nebulas)"是用 Javascript 和 Typescript 来写智能合约,标准叫 NRC20
  11. 如果纯粹作为用户来用 Dapp,推荐安装浏览器扩展(来支付)。以太坊推荐安装 Chrome 扩展 metamask,星云链这边也有个自己的 Chrome 扩展就叫 nebulas

一些很好的区块链相关网站

https://cryptozombies.io/zh/course
这个 Zombie 教程很赞,有中文,挺长的,过一遍+理解可能要1天

https://www.tooploox.com/blog/nebulas-javascript-meets-smart-contracts
这篇文章对比了"以太坊"和"星云链"的语法不同点

https://medium.com/@jgm.orinoco/understanding-erc-20-token-contracts-a809a7310aa5
这篇介绍 ERC20 代币合约

上面是总结和资料,接下来写一点"感受"

  1. (很多 Dapp 的场景都是可有可无)星云链搞了个激励计划第一季,5月到7月,共8周,希望开发者提交 DApp,然后会排名给 NAS 奖励
    具体所有的 App 都可以在这里看到,非常非常多:
    https://incentive.nebulas.io/cn/dapps-board.html
    可以看到官网和合约地址。
    个人感觉这些 App 都很无聊。什么模拟交易,应用商店,游戏。
    有些打开网站根本没法用(写这篇文章时是8月,激励计划已经结束了)比赛完了没必要维护就关掉了。
    很多应用根本不需要区块链。属于可有可无的东西。
    当然这里也不是黑那些开发者。其实包括以太坊也好,整体的 DApp 感觉都是这样的,以太坊那什么 CryptoKittes 也是没什么卵用的。拿以太坊买网页上画的假猫