14 turkeycock

尚未进行身份认证

暂无相关简介

等级
TA的排名 2w+

如何发布Azure web app

最近一个项目要集成到Azure的webappservice里,花了点时间玩了一下,记录下来做个备忘。首先是需要去Azure官网注册免费账户,点击“免费开始”然后填写个人信息,注意需要绑定信用卡,否则没法部署webapp。比较坑爹的一点是,虽然名为“FreeTrial”,绑完卡后立马扣了我1美金。。。注册完成后会获得一个“订阅号”,后面部署webapp需要使用这个订阅号。进入下面这个页...

2019-08-20 09:11:56

从geth切换到parity遇到的那些坑

最近需要搭建以太坊全节点,刚开始用的是geth,同步了1整天发现最新的70~80个块总是同步不下来,网上一查很多人遇到过这个问题,据说跟SSD的读写速度有关,无奈之下只能放弃,改用parity。parity是一个和geth类似的以太坊客户端程序,由以太坊黄皮书作者GavinWoods领导,采用Rust语言编写。试用了一下体验还是挺棒的,同步Ropsten的数据只需要几个小时的时间。但是,par...

2019-08-20 08:51:18

Zcash - 各种密钥和签名,你懂吗?

Zcash的发展大体经过了OverWinter(过冬)->Sprout(发芽)->Sapling(树苗)这几个阶段,随着业务和功能的逐渐丰富,密钥系统也越来越复杂,刚开始接触时感觉一头雾水,但是静下心来仔细分析,就能逐渐领略其中的魅力。Zcash中的各种密钥,主要是为了实现下面2类功能:1.Signature2.In-bandsecretdistribution签名...

2019-07-27 23:32:42

Zcash - 深入浅出Pedersen Hash/Commitment计算

接触过Zcash的人一定都听说过PedersenHash,或者PedersenCommitment。实际上,在Zcash中存在下面4种不同的概念:1.PedersenHash2.MixingPedersenHash3.WindowedPedersenCommitment4.HomomorphicPedersenCommitment你能分清楚它们直接的区别和联系吗?本文将...

2019-07-27 23:18:22

零知识证明|4.如何验证多项式盲计算的值?

这篇文章正式介绍一下Bob如何验证Alice发过来的E(P(s))E(P(s))E(P(s))的值是否正确。实际上,我们想要实现2个目的:双盲:Alice不知道s,Bob也不知道P(X)可验证:Alice只有发送正确的E(P(s))E(P(s))E(P(s))的值,才会被Bob接受要实现第2个目标,需要用到上一篇文章里介绍的α对和KCA的概念。上一篇文章里的KCA只用到了一个α对,我们...

2019-06-10 11:29:35

零知识证明|3.什么是KCA系数知识假设?

上一篇介绍了盲计算,所谓盲计算,就是Alice在不知道s的情况下完成多项式计算。那么,Bob如何确定Alice的计算结果是正确的呢?要实现这一目标,需要先介绍一个概念:α对。在有限循环群G中,如果α,β≠0且b=α⋅a\alpha,\beta\neq0且b=\alpha\cdotaα,β̸​=0且b=α⋅a,那么就称(a,b)(a,b)(a,b)为一个α对。也就是说,b是a...

2019-06-10 11:26:28

零知识证明|2.什么是多项式盲计算?

上一篇介绍了什么是同态隐藏。假设取E(x)=gxE(x)=g^xE(x)=gx,则E(x+y)E(x+y)E(x+y)可以通过E(x)E(x)E(x)和E(y)E(y)E(y)计算出来:E(x+y)=E(x)⋅E(y)E(x+y)=E(x)\cdotE(y)E(x+y)=E(x)⋅E(y)实际上,不仅仅支持加法,支持所有"线性组合"的同态隐藏,比如E(ax+by)E(ax+by...

2019-06-10 11:23:52

零知识证明|1.什么是同态隐藏?

所谓零知识证明,指的是在不泄露秘密的前提下,证明我知道这个秘密。举个简单例子,假设我一个月工资2000,我老婆一个月工资3000。我不会把这两个数字透露给你,但是我可以告诉你,我俩每个月的工资加起来是5000。你可以通过某种方式验证我俩的工资加起来确实是5000,但是你没办法反推出来我每个月的工资是多少,我老婆每个月工资是多少。要做到这一点,需要引入一个概念,叫做同态隐藏。这需要一些数论的知识...

2019-06-10 11:18:43

以太坊控制台源码分析

最近有网友提到以太坊控制台的代码看不太明白,抽了点时间整理了一下。当我们通过gethconsole或者gethattach与节点交互的时候,输入的命令是如何被处理的呢?看下面这张流程图就明白了:命令行编辑器Liner等待用户输入命令JSRE使用一个名为scheduler的通道(chan)接收命令JSRE把命令发送给Javascript解释器Otto处理Otto中预加载了web3....

2019-04-14 12:51:52

前端技术栈(五):dva,美貌与智慧并存

经过前面四篇的铺垫,终于轮到我们的主角dva了,就是下面这个美女:先擦一擦哈喇子,我们来介绍一下,dva出自于暴雪出品的一款游戏《守望先锋》,援引官方的角色介绍:D.Va拥有一部强大的机甲,它具有两台全自动的近距离聚变机炮、可以使机甲飞跃敌人或障碍物的推进器、还有可以抵御来自正面的远程攻击的防御矩阵。然后呢,蚂蚁金服的一位架构师sorrycc很迷这位美女,正巧刚开发了一款前端框架没有...

2019-03-12 19:20:54

前端技术栈(四):react-router,去中心化式路由

1.静态路由vs.动态路由在Web前端开发中,我们经常会需要处理页面路由问题。习惯上,路由信息会在一个地方集中配置好,我们可以称之为“静态路由”,或者叫“中心化式路由”。以react-routerv3版本为例,代码类似下面这样:import{Router,Route,IndexRoute,browserHistory}from'react-router'constA...

2019-03-12 08:40:34

前端技术栈(三):redux-saga,化异步为同步

1.什么是Saga?第一次看到这个单词的时候一脸懵逼,因为字典上查到的意思完全驴头不对马嘴。。。实际上,这个术语出自康奈尔大学的一篇论文:http://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf最初这篇论文是为了解决分布式系统中的LLT(LongLivedTransaction),也就是长时运行事务的数据一致性问题的。这...

2019-03-11 11:10:05

前端技术栈(二):从Flux到Redux

上一篇分析了Flux出现的背景和原理,最核心的思想就是“组件化+单向数据流”。但是,Flux在设计上并非完美,具体来说主要存在以下2个不足:1.多Store数据依赖由于Flux采用多Store设计,各个Store之间可能存在数据依赖。以flux-chat为例:在这个聊天软件里,可能会有多个人给你发消息,比如Dave给你发了3条,Brian给你发了2条,当你点开某个人给你发的消息后,界面需要...

2019-03-10 00:05:38

前端技术栈(一):从MV*到Flux

最近要开始搞网页端钱包,本着干一行爱一行的原则,撸起了前端框架。项目基于蚂蚁金服的dva框架,实际上是对几个流行的开源框架的整合,技术栈包括:reactreact-routerreduxredux-sagadvaantd在开始介绍之前,先说一说MV*。大家一定都听说过MVC,在这之后又衍生出了MVP和MVVM,这些都可以统称为MV*。但是,随着前端代码复杂度的增加,人们发现越来...

2019-03-10 00:00:56

区块链技术分享导读目录(持续更新)

还记得第一次接触到以太坊源码时,就被它作为“世界计算机”的宏伟构想深深吸引。实际上,可以认为以太坊是在试图屏蔽底层硬件的差异,制定统一的虚拟指令集,并利用去中心化维护整个系统的稳定性。此外,还可以把以太坊看成一个去中心化的AppStore,任何人都可以自由发布自己的app而不用担心各种监管和下架,而且最重要的是,永不宕机。随着在区块链行业研究的深入,越来越感觉到知识的纷繁庞杂,于是决定把这些学...

2019-03-09 13:42:56

一分钟了解硬件钱包

所谓硬件钱包,就是把你的私钥保存在一个不联网的设备上。因为不联网,所以其他人永远都无法窃取你的私钥。硬件钱包品牌繁多,比如长得像车钥匙的Trezor:长得像U盘的LedgerNano:长得像手机的Ellipal:甚至还有长得像信用卡的:那么硬件钱包怎么用呢?以Trezor为例,首先会要求你设置一个PIN码,类似于你的手机密码:然后就是创建你的私钥了,创建完以后会显示助记词:...

2019-02-02 23:03:56

Go编译缓存导致C文件修改后未重新编译

今天和同事一起看了一个很诡异的问题,研究了半天发现是由于Go的编译缓存导致的,记录下来方便其他遇到问题的同学参考。首先编写一个hello.go文件,里面调用了C函数:packagemain/*#include"./libhello.c"*/import"C"import"fmt"funcmain(){fmt.Println(C.hello())}对应...

2019-02-01 13:48:05

分片:QuarkChain技术原理分析

最近听说QuarkChain在韩国热度比较高,于是抽了点时间研究了一下。QuarkChain是一种“sharding-basedblockchain”,即基于分片的区块链。它的主要目标是提高区块链的可扩展性(即TPS),同时还要兼顾不可能三角(安全性、去中心化性、可扩展性)。主要竞争对手:以太坊分片:由于历史包袱比较重,实际应用时间不确定OmniLeger:安全性有所妥协,如果要达到10...

2019-01-20 02:03:38

Android上运行Http Server

Android设备一般是作为客户端使用,但是最近一个项目需要用android开发板作为服务器和手机端通信,因此花了点时间研究了下如何在android上运行httpserver。实际上这是有开源解决方案的,叫做AndroidAsync,作者是KoushikDutta,他的另一个开源项目是大名鼎鼎的ION,这是一个异步网络图片加载库。但是AndroidAsync几乎没什么文档,因此实际使用中遇到...

2019-01-19 19:33:36

以太坊君士坦丁堡漏洞分析

这两天关于以太坊延迟君士坦丁堡升级的报导铺天盖地,可惜到现在都没看到一篇能把这个漏洞讲透彻的,就由我来给大家解密吧。上一篇文章给大家介绍过EIP1283,是为了优化SSTORE指令的gas计算方式的,这次的漏洞就出在这个EIP上,可能会导致“重入攻击”。1.什么是“重入攻击”所谓“重入攻击”,指的是在同一笔交易中,合约A调用合约B,而合约B又反过来调用合约A的现象。这种情况是必须被禁止的...

2019-01-18 23:26:45

查看更多

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