2018-8-19 学习区块链几天的总结
1.2.3.4.5
这篇文章是什么
总结一下这几天(2018年8月)学区块链的结果
这篇文章对谁有用
对区块链有兴趣的程序员
背景:我是做 Web 开发的程序员
正文
以下无特别顺序,想到哪写到哪儿
如果有错欢迎来信 guokrfans#gmail.com 指正。
- 发行代币(token)的做法是写一个智能合约,这样就行了
- DApp 这个词的意思是 decentralized application,"去中心化应用",就是基于区块链之上的应用。
- 写 DApp 也是写一个智能合约。前端依然用 HTML/CSS/Javascript,后端就不是传统的服务端语言+一个数据库了,比如 PHP + MySQL,就没有这俩了,可以直接和区块链交互。比如这个 App:https://unforgettable.nasd.app/#/ 当然如果要有也行。只是说这些玩具 DApp 里可以完全没有后端
- 前端依然是传统的技术结构(HTML/CSS/JS)前端还是放在中心服务器上,只是后端换成了区块链。如果要完完全全的前后端都是分布式,没有中心服务器。可以看看 IPFS,我在 Youtube 上看过一些 IPFS 教程,更细节的东西就没看了。我觉得不靠谱。IPFS 还太年轻,对于大型 web 应用可能扛不住(我猜的啦)
- 智能合约和普通的账号都有一个地址,比如 n1mFGEFDaYDgNKSdVaKLetv7ycRXvuGR9PK
- "Token 转账"就是执行代币智能合约里的 transfer 方法,为了执行智能合约,需要填合约的地址。比如上面的 n1mFGEFDaYDgNKSdVaKLetv7ycRXvuGR9PK
- 因为代币是靠合约来做。所以代币的名字和符号没有唯一性,可以任意重名,你可以发布10个代币智能合约都叫 hahaCoin, 符号 hc。唯一性是靠合约地址来判断的。而不是名字。
- 用来做代币的智能合约是有标准的,比如以太坊的代币合约叫 "ERC20"。这个最流行
- Solidity 是用来写以太坊智能合同的语言。语法不难,只是需要时间学习
- "星云链(nebulas)"是用 Javascript 和 Typescript 来写智能合约,标准叫 NRC20
- 如果纯粹作为用户来用 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 代币合约
上面是总结和资料,接下来写一点"感受"
- (很多 Dapp 的场景都是可有可无)星云链搞了个激励计划第一季,5月到7月,共8周,希望开发者提交 DApp,然后会排名给 NAS 奖励
具体所有的 App 都可以在这里看到,非常非常多:
https://incentive.nebulas.io/cn/dapps-board.html
可以看到官网和合约地址。
个人感觉这些 App 都很无聊。什么模拟交易,应用商店,游戏。
有些打开网站根本没法用(写这篇文章时是8月,激励计划已经结束了)比赛完了没必要维护就关掉了。
很多应用根本不需要区块链。属于可有可无的东西。
当然这里也不是黑那些开发者。其实包括以太坊也好,整体的 DApp 感觉都是这样的,以太坊那什么 CryptoKittes 也是没什么卵用的。拿以太坊买网页上画的假猫