12 天地会珠海分舵

尚未进行身份认证

做个有追求的全栈程序员。当前在做的产品-晓日程: http://xricheng.com。自主博客: http://techgogogo.com; 最新动向: 回炉重造高数线代概论,为机器学习打基础

等级
TA的排名 1k+

自己动手实现区块链

简介本教程将带领大家从零开始开发一套可行的加密货币系统。开发的基本原则就是尽量的简单易懂。我们打造的这个项目的名称叫做Naivecoin。用的开发语言是Typescript。总共分为六个章节。大家可以选择相应的分支进去查看相应的代码。如果你只是对区块链的实现原理感兴趣,那么你只需要看第一章就足够了,代码相当的简单,只用200行的代码就能让你一窥区块链的全貌。第一章:最小可行区块链这一章...

2019-06-23 11:53:14

第六章 钱包管理界面和区块链浏览器

第三章交易概览非对称加密和签名私钥和公钥交易概览交易outputs交易inputs交易数据结构交易id交易签名未消费的交易outputs未消费交易outputs清单更新交易有效性验证原始交易测试体验小结概览本章我们将引入加密货币中的交易机制。有了交易这个机制之后,我们的区块链将会从一个只有基本功能的区块链华丽转身成一个加密货币系统。最终我们就能通过指定目标...

2019-06-23 11:50:05

第五章 自己动手写区块链之交易中继

概览交易池广播未决交易有效性验证记账更新交易池体验小结概览上一章节中,我们要给一笔交易记账的话,必须自己手动进行一次挖矿,才会把交易记录加到一个区块里面去。这一章节中,我们将会引入未决交易中继的机制。有了这个机制之后,我们要进行一笔交易的时候,就不需要自己动手挖矿,而是将自己的交易发送到我们的区块链网络中去(即中继传递的概念),由其他节点在挖矿之后,将我们的交易记录加到他们...

2019-06-23 11:49:28

第四章 自己动手写区块链之钱包

第四章钱包概览生成钱包钱包余额生成交易使用钱包测试体验小结概览钱包的目的是为了给用户创建更高层的抽象接口来对交易进行管理。我们最终的目的是让用户可以方便的:创建一个新钱包查看钱包的余额在钱包之间进行交易以上这些生效后,用户就不需要知道上一章节中描述的inputs和outpus这些交易的细节,就能对交易进行管理了。就好比在比特币网络中,你只需要把比特币打入对应地...

2019-06-23 11:48:27

第三章 自己动手写区块链之交易

第三章交易概览非对称加密和签名私钥和公钥交易概览交易outputs交易inputs交易数据结构交易id交易签名未消费的交易outputs未消费交易outputs清单更新交易有效性验证原始交易测试体验小结概览本章我们将引入加密货币中的交易机制。有了交易这个机制之后,我们的区块链将会从一个只有基本功能的区块链华丽转身成一个加密货币系统。最终我们就能通过指定目标...

2019-06-23 11:47:22

第二章 自己动手写区块链之工作量证明和挖矿

第二章工作量证明和挖矿概览工作量证明拼图和难易度挖矿难易度共识时间戳校验累积难易度验证测试小结概览本章节我们将会在我们的玩具版区块链的基础上加入工作量证明(POW)的支持。在第一章节的版本中,任何人都都可以在没有任何工作量证明的情况下添加一个区块到区块链中。当我们引入工作量证明机制之后,一个节点必须要解开一个有相当计算量的拼图(POWPuzzle)之后,才能往区块链...

2019-06-23 11:46:01

第一章:自己动手写区块链之最小可行区块链

第一章:最小可行区块链概览区块数据结构区块哈希创世块创建区块保存区块链验证区块完整性选择最长链节点间通信操作节点架构运行测试小结概览区块链的基础概念非常简单,说白了就是一个维护着一个持续增长的有序数据记录列表的这么一个分布式数据库。在此章节中我们将实现一个简单的玩具版的区块链。此章节结束时,我们的区块链将实现以下功能:实现区块和区块链结构定义实现可以将包含...

2019-06-23 11:44:40

晓日程-首款打通微信和桌面的免费日历应用

新年伊始,新年新决心,各大网站到处大肆标榜高效率人士是如何提高生产率的,其中一个共同点就是如何高效的利用好有限的时间。什么有效的单位时间划分,番茄工作法,GTD(GetThingsDone),《清单革命》等方法论和书籍再次随着大家的唾沫子到处传播。作为缺乏运动而免疫力底下且脑洞长期大开的程序员行列的一员,这些唾沫子很容易就通过眼耳口鼻直接进入我的大脑,触碰着我的show觉神经,逼迫本人给...

2019-03-13 10:21:30

nodejs通过lodash合并去重由unixtime和Date组成的两个数组

1.问题起源最近在实现一个API,其中有一部分功能是需要从Mongodb中取出一个由Date对象组成的数组,然后将客户端传过来的unixtime合并到该数组中,并且去重复。比如,假设从mongodb中取回来的数据中有一个叫做gaming的项,专门用来记录用户进入游戏的开始时间和退出时间。那么mongoose的schema的定义将大概是这样的:constDeviceLogS

2017-04-28 13:32:48

小白学react之调用微信jssdk实战

本打算网上找个react调用微信的jssdk的实例进行学习的,但可惜搜索了半天而未果,只有一些基于其他框架的。估计是大牛们都觉得太简单或者太忙了,懒得提笔花几个小时来给我们做个Demo。对于处于快速学习年代的我们,一个可以运行起来的示例是多么的重要。希望本示例可以起到抛砖引玉的作用,让大家能快速的在react框架下体验jssdk的强大功能。通过上一篇《小白学react之网页获取微信用户信息》我们学

2017-04-23 11:30:12

小白学react之网页获取微信用户信息

通过上一篇《小白学react之EJS模版实战》我们学习了如何通过EJS模版生成我们高定制化的index.html文件。本篇我们将会继续延续我们的alt-tutorial项目的实战计划,去获取微信扫码用户的信息,并将头像显示在我们页面的右上角上。最终实战效果将如下所示。首先根据我们的网站url生成二维码,比如我们可以通过浏览器的FeHelper来生成:然后用户通过微信扫码:最后用户确定授权后获取到用户

2017-04-23 11:29:05

小白学react之EJS模版实战

通过上一篇《小白学react之由FOUC引发的一次webpack变革》我们学习了webpack的一些高级用法,比如如何生成哈希文件,如何将开发和生产配置分离,如何解决FOUC问题,以及如何运用html格式的模版来自动生成我们的index.html。但是在尝试将我们的应用部署到我的一个阿里云服务器上的时候却出现了问题。整个问题主要就是因为前端路由和访问路径不一致导致的,往下我就描述下应该如何解决。1.

2016-10-12 12:38:56

小白学react之由FOUC引发的一次webpack变革

上一篇《小白学react之页面BaseLayout框架及微信的坑》我们学习了如何为各个Components提供一个基础的父框架组件来处理不同页面的Title的显示和Style样式的显示。今天本人会尝试就自己踩到的一个坑开始,通过对webpack做进一步的修改,来学习更高级点的webpack相关的知识点。主要需要解决的问题如下:FOUC问题生产和开发配置分离自动生成index.html页面模版文

2016-10-12 12:37:26

小白学react之页面BaseLayout框架及微信的坑

上一篇《小白学react之SASS实战》我们学习了如何通过运用sass来为我们的应用页面“上色”,加入css的支持。但是我们到现在为止,每个页面的标题还是系统默认的,这多多少少显得不专业:今天我的目标就是为所有页面提供一个通用的基础布局框架,以便在同一个地方控制不同页面的布局,比如背景颜色以及标题等。1.BaseLayout1.1小白方案以修改标题为例,假如我们希望在About页面的时候标题

2016-10-12 12:35:55

小白学react之SASS实战

上一篇《小白学react之restfulapi获取服务器数据实战》我们学习了如何通过superagent的两个模块提供的功能,调用远程Express服务器上通过restfulapi提供的数据,并且学习了如何打造一个简单的Expressapi服务器。今天本人准备将我们的示例应用alt-tutorial加上css的支持,以便能更好的呈现。以下是最终效果:本篇开始之前,如果看官跟我一样对SASS没有

2016-10-12 12:34:19

小白学react之restful api获取服务器数据实战

通过上一篇文章《[小白学react之ReactRouter实战](http://techgogogo.com/2016/09/react_router/)》我们学习了在ReactRouter的基本功能,并根据路由功能建立了一个导航栏,可以方便的切换查看Locations和About。但是,这里Locations的数据还是在客户端模拟出来的。作为前端应用,和服务器端打交道是在所难免的了。所以,今天我

2016-09-29 15:38:02

小白学react之React Router实战

通过上一篇文章《[小白学react之altjs下的Action和Store](http://techgogogo.com/2016/09/altjs_action_store/)》我们学习了在alt框架下的Action和Store的特色,以及对alt-tutorial的代码做了重构,让其更简洁且各模块职责更分明。今天的计划是继续对alt-tutorial进行改造,通过实战来学习ReactRouter的基

2016-09-29 08:06:33

微信应用号开发知识贮备之altjs的Action和Store

过上一篇文章《[微信应用号开发知识贮备之打通ReactComponent任督二脉](http://techgogogo.com/2016/09/altcontainer/)》我们学习了AltContainer是如何通过对Component职责的解绑,让Component的尽可能的关注在如何进行页面渲染的逻辑上去,而不需要去管该如何获取数据,该如何监听状态是否改变是否需要重新渲染的逻辑,从而让整个组件更容易重用

2016-09-27 20:43:02

微信应用号开发知识贮备之打通React Component任督二脉

随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生。作为行业内人士,我们很应该去拥抱这个趋势。这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没...

2016-09-25 20:45:11

微信应用号开发知识贮备之Webpack实战

随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生。作为行业内人士,我们很应该去拥抱这个趋势。这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没通过上一篇《微信应用号开发知识贮备之altjs官方实例初探》,我们已经将altjs的官方实例所用到的依赖包升到最新,且修改的源码相应的部分来适应最新的依赖。

2016-09-24 10:49:58

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。