恰在《Node.js开发加密货币》内容撰写过半,与出版社签订出版合同的时候(声明:电子书永远免费提供,内容同步),巴比特论坛和比特时代组织了一场以“我和时代的故事”为主题的征文活动。一语双关的活动主题,响亮而鲜明,我被狠狠地触动了一下。于是,打开电脑,写下这些回忆,权当给本书加上自序。
我钟爱编程,近乎狂热,就像别人爱好足球一样,了解我的朋友都知道这一点。2009年,刚参加工作几年,一切还算顺利。有一天,接到一位留学美国的同学一封邮件,附件里有一篇英文文档,他问我感不感兴趣。那时候,还没有比特币的概念,也不懂得一个软件产品还要弄个什么技术白皮书,至少在中国不需要,再看看满篇的新概念和数理逻辑,我直接无视了,说实话,看不懂内容,想不到它的未来。不懂的东西,又没有探索的动力,哪怕未来多么有价值,也与你无缘。
转眼到了2013年,比特币发展迅猛,价格也是高歌猛进,政府的打压、媒体的质疑,让这个原本是少数极客把玩的东西,一下子成了“网红”。“你看现在的年轻人多厉害,电脑上弄一串数字,就能卖好几千”,一位开出租的司机师傅谈到他的辛苦收入时,这样跟我感慨。当时,我好像被电了一下,但是因为家里的变故,始终沉浸在悲痛中无法自拔,被触动的亮光很快就熄灭了。再有价值的东西,与亲情、与生命相比又算得了什么呢,当心静下来,一切都不重要。
2014年初,时间终于把我叫醒。我感觉自己沉睡了很久,重新审视浑浑噩噩的这两年,突然觉得有个所谓的比特币自己可能已经错过了好多次。于是,走进网络,开始如饥似渴的补充知识,这一过又是一年多。这一年多来,在别人打球、垒长城的时候,我都沉浸在自己的代码海洋里,只不过研究的方向变了,一切都围绕着去中心化的应用开发和实践。我也不断的“买买提”,成为包括比特时代在内的几个交易网站的常客。当然,我没有一夜暴富的梦想,也没有短线操盘的空闲,只是坚信当前仍是加密货币的初期,只要踏踏实实做事,任何团队、任何产品都有机会,这是真正做过产品的人都明白的道理。
但是,谁去考察开发者的初心呢,谁又知道某些人是出于什么目的呢?看看那些时不时曝出的传销币、跑路男,在利益面前,任何人都是渺小和无力的。这也是比特币火爆的根源,用编程的方式,固化了“利益”转移的规则,实现了公开、透明、可追溯的信用体系,让比特币变成了一个自我完善的经济系统。因为体制原因,我以前从来不会在网上使用自己的真实信息,但是后来发现这不是什么好习惯。至少,在这个快速的信息时代,我们所做的很多工作都淹没在浩瀚的网络海洋里了。于是,我决心撕下伪装,学习比特币的理念,用有限的手段积累个人信用。先后注销了各种马甲,在github和巴比特上注册了自己常用的帐号,贴上自己的真实头像,像区块链那样,在网络上宣示自己的存在。这个时间点,大概就是2015年的5月份。
2016年,经历过很多小伙伴都经历的故事和两年的沉淀之后,也看清了币圈的混乱。特别是听到很多人骂,中国的技术总是不如别人的时候,心里多少有点伤感。于是,决心自己先行动起来,为改变这个现状做点事情。元旦过后的第一天,在巴比特论坛上写下了自己的心愿单(见参考),晚上发布了《Nodejs开发加密货币》开栏寄语。自那以后,除特殊情况外,平均每周完成一篇,本文算是本专栏正式发布的第20篇(电子书更多)。半年来,一直有一种非常新奇的体验,最初仅仅是我一个人在唱独角戏,后来就有很多小伙伴看到我的文章进来,大家在一起自然会有更多新奇的想法,反过来推着我去作出进一步改进,如此反复。截止目前,仅电子书,单日的浏览量好几百,仍在持续增加中。
至此,我的比特时代正式启幕。比起那段黑暗的时光,我现在每天都被梦想叫醒,每天都在享受生命。
“每一件与众不同的绝世好东西,其实都是以无比寂寞的勤奋为前提的,要么是血,要么是汗,要么是大把大把的曼妙青春好时光”。这是一位文笔非常好的朋友大学毕业后,在QQ上给我的留言。后来,我把它设置成了个人签名,每每读到这句话,我总能被感动。后来,与那位朋友聊天,我说你真有才,能把一句话说到人的内心深处,我要不是男人,一定美美地哭一场。他一听,十分感慨,告诉我他也是抄来的,他还没有修养到可以讲出这种意味深刻的话来,也只有经历过,才能被感动。
是的,美好的东西,任何人都能感受到,哪怕是田地里的庄家都能。我是农村出来的,爸妈从来没有读过书,地地道道的农民。爸妈做任何事情,都要经历漫长艰辛的过程,因为他们不懂设计和规划,没有专业知识,不能上网查资料,一切都要靠自己摸索。但是,在我看来,他们做的每一件事,给我相同的时间,我也不一定做得比他们更好。我妈曾经告诉我,做事得用心,用不用心,每颗庄家都知道。这样的教育,对我的影响很大,直到现在,我都认为自己其实就是一个农民,只不过干活的那个锄头在心里,表面上换成了键盘。
工匠精神,人人推崇,但不是人人都能做到,环境往往起到很大的作用。还是我上面那位朋友,刚毕业的时候,非常风光,去了某机关报社,最初当记者,待遇优厚,特权多多,后来做编辑,自在逍遥。这中间,还经常写写书,一年下来,仅仅版税收入也非常可观。但是,最近几年好像不太好了,有一次聊天明显感觉到他的消极,问他怎么了,他说都是我们这些会编程的人闹的,互联网抢了他们的饭碗。我说,那你就抢回来吧,化敌为友,借助互联网挣更多钱。他说试过了,没那么简单,几大文学网站,那么多作者,真正挣到钱的没有几个。偶尔火起来了,大部分都被平台克扣去了,甚至连版权都得不到。加之盗版猖獗,基本入不敷出。
听着他的话,我始终沉默,当初我也想不到出路,时代变迁,谁都无法阻拦。但是,这两年我有了方向,找到了可以彻底解决的办法,这也是上面我如饥似渴学习比特币的内在动力,也是坚持分享这本书的内在动力。我并没有告诉他我的想法,因为我没有充当救世主的怪癖,只是身边人遇到问题,你有机会帮他解决而做不到时,就会成为心结。软件是给人用的,开发者首先想到的自然是身边人,这是再正常不过的道理。有人看看别人需要什么,就能总结出一个好的项目,着实令人佩服,我自知不具备这样的素质,一点都没有。这就是亿书诞生的初衷,没有任何离奇故事,都是满满的生活小节,这多少也有点工匠精神的情结吧。
当主动往版权保护和写作分享发力的时候,一切资源就源源不断的走到你的面前。亿书,这个去中心化的版权保护和自出版平台的操作过程,大致是这样的,2015年年底,在经过一段时间的技术探索之后,我把关于打造电子书版权保护项目的想法借助巴比特论坛和盘托出,证明了想法的可行性,也吸引了很多小伙伴关注。接着,我用行动实践电子书写作和分享的全过程,并把亿书这个项目的真实源码作为本书分享的重要内容,边分享边开发,边打造开源团队,这中间提交了除亿书币源码之外的官方网站、编程语言调查项目、电子书目录生成工具以及多个前端插件,搭建了官网博客、区块链俱乐部。读者越来越多,团队日益壮大,仍有很多小伙伴在了解、考察和熟悉中。再接着,等亿书正式发布,将用亿书(软件)来继续分享亿书(源码)了。这就像C/C++这样的编程语言可以用来开发自己,开发者也是使用者,自身不断循环完善。
亿书源码来自于早期的Crypti,与Lisk(成功众筹650万美元)几乎同时建立版本库,但是二者选择了完全不同的发展路线。在钱和产品的选择上,亿书团队选择产品,钱仅是副产品。亿书定位在协同创作和版权保护,以及以此为基础的衍生品之上,并通过这种方式建设覆盖全球的P2P网络。提供侧链扩展开发能力,基于亿书开发任何类型的去中心化应用,比如:电子商务、直播平台等等。这仍然是从基础需求起步,步步搭建积木的思路和过程,与我通过写作本书,体验产品本身,然后发展亿书的思路一样,与我扛着锄头下农田干活,修理一颗一颗的秧苗一样,只不过时代变了,现在用起了机械化,玩起了去中心化而已。这是工程学的基础,再厉害的天才也无法逾越。
亿书,注定要开启数字出版新时代。
亿书是完全开放开源的项目(官网见链接),一个完整的类比特币的加密货币。本书基于该项目,完全以实用为目的,把开发实践贯穿始终,内容涉及到开发加密货币前端、后台和桌面应用的全过程。是用开发的思维反复迭代的书籍,由浅入深,详细介绍了加密货币相关理论知识、Node.js前后台开发基础知识、加密解密技术、P2P网络实现、区块链、共识算法等,能帮助初学者快速了解加密货币技术,快速掌握Node.js编程技术,帮助加密货币从业者、Web开发者更深刻的理解相关概念和技术实现。
本书力图用最少的篇幅表述更丰富的内容,共分为五个部分20多个章节:
第一部分:了解加密货币,共3章。详细讲述了加密货币的相关概念,用独特的技术视角,把加密货币的基本技术要素串联起来,同时在文中自然引导读者跳转阅读下面各个部分,实现理论到实践的过度。
第二部分:Node.js入门指南,共4章。详细介绍了Node.js入门知识,并通过一个具体项目,完成对Node.js在加密货币领域的调查和描述,整个章节也是项目架构设计必备的调研和技术选型阶段,是本书第一个完整的实践范例。
第三部分:源码解读,共10章。从架构设计的角度,层层剖析加密货币的设计原理,深刻解读加密货币的相关概念和技术。从项目设计的角度谋篇,第8章,详细介绍了亿书白皮书的核心内容,明确了项目的需求,教会读者如何着手研究加密货币;第9章,从项目入口程序出发,介绍了亿书项目的整体结构;第10-16章,分别介绍了P2P网络、加密解密、签名和多重签名、区块链、共识机制等核心内容。
第四部分:开发实践,共x章。主要是对第二和三部分的有益补充,把在这两个部分出现的技术难点抽取出来,集中介绍。仍然以亿书项目中涉及到的实际项目为主,每一篇几乎都包含一个完整独立的小项目。第17章,总结了aysnc的用法,解决了Node.js回调流程控制问题;第17章,通过作者维护的另一个开源项目,介绍了客户端应用的开发;第18章,介绍了亿书官方网站的开发,对市面上的静态网站进行了总结;第20章,以Ember.js框架为主,详细介绍了加密货币客户端的开发设计;第21章,详细介绍了加密解密技术;第22章,介绍测试技术;第22章,集中介绍了部署方案。
第五部分:附录。需要交代的其他内容。
(在发布本文时,上述部分内容还没有完成)
最后,要特别感谢巴比特社区,从本书开始到今天与出版社签订出版合同,巴比特的兄弟们(@长侠,@miner,@等一轮残月 等)都给予极大的关注和鼓励。与这样的团队和小伙伴相处没有任何隔阂与障碍,大家总能彼此欣赏、谅解和支持。作为最早参与巴比特众筹的投资人,也非常欣慰,在此表示特别感谢。
当然,还有CSDN知识库的编辑、专家,以及cnodejs.org上很多未谋面的朋友,这里暂且记下,不一一列举。
本系列文章即时更新,若要掌握最新内容,请关注下面的链接
本源文地址: https://github.com/imfly/bitcoin-on-nodejs
亿书官网: http://ebookchain.org
区块链俱乐部: http://chainclub.org
亿书官方QQ群:185046161(亿书完全开源开放,欢迎各界小伙伴参与)
2016年上班第一天,留个记号,许个心愿