原创 從geth切換到parity遇到的那些坑

最近需要搭建以太坊全節點,剛開始用的是geth,同步了1整天發現最新的70~80個塊總是同步不下來,網上一查很多人遇到過這個問題,據說跟SSD的讀寫速度有關,無奈之下只能放棄,改用parity。 parity是一個和geth類似的

原创 如何發佈Azure web app

最近一個項目要集成到Azure的web app service裏,花了點時間玩了一下,記錄下來做個備忘。 首先是需要去Azure官網註冊免費賬戶,點擊“免費開始”然後填寫個人信息,注意需要綁定信用卡,否則沒法部署web app。比

原创 Zcash - 深入淺出Pedersen Hash/Commitment計算

接觸過Zcash的人一定都聽說過Pedersen Hash,或者Pedersen Commitment。實際上,在Zcash中存在下面4種不同的概念: 1.Pedersen Hash 2.Mixing Pedersen Hash

原创 Zcash - 各種密鑰和簽名,你懂嗎?

Zcash的發展大體經過了OverWinter(過冬) -> Sprout(發芽) -> Sapling(樹苗)這幾個階段,隨着業務和功能的逐漸豐富,密鑰系統也越來越複雜,剛開始接觸時感覺一頭霧水,但是靜下心來仔細分析,就能逐漸領

原创 零知識證明|3.什麼是KCA係數知識假設?

上一篇介紹了盲計算,所謂盲計算,就是Alice在不知道s的情況下完成多項式計算。 那麼,Bob如何確定Alice的計算結果是正確的呢?要實現這一目標,需要先介紹一個概念:α對。 在有限循環羣G中,如果α,β≠0且b=α⋅a\alp

原创 零知識證明|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

原创 以太坊控制檯源碼分析

最近有網友提到以太坊控制檯的代碼看不太明白,抽了點時間整理了一下。 當我們通過geth console或者geth attach與節點交互的時候,輸入的命令是如何被處理的呢?看下面這張流程圖就明白了: 命令行編輯器Liner等待用

原创 前端技術棧(五):dva,美貌與智慧並存

經過前面四篇的鋪墊,終於輪到我們的主角dva了,就是下面這個美女: 先擦一擦哈喇子,我們來介紹一下,dva出自於暴雪出品的一款遊戲《守望先鋒》,援引官方的角色介紹: D.Va擁有一部強大的機甲,它具有兩臺全自動的近距離聚變機炮、可

原创 前端技術棧(四):react-router,去中心化式路由

1.靜態路由 vs. 動態路由 在Web前端開發中,我們經常會需要處理頁面路由問題。習慣上,路由信息會在一個地方集中配置好,我們可以稱之爲“靜態路由”,或者叫“中心化式路由”。以react-router v3版本爲例,代碼類似下面這樣

原创 前端技術棧(三):redux-saga,化異步爲同步

1.什麼是Saga? 第一次看到這個單詞的時候一臉懵逼,因爲字典上查到的意思完全驢頭不對馬嘴。。。 實際上,這個術語出自康奈爾大學的一篇論文:http://www.cs.cornell.edu/andru/cs711/2002fa/r

原创 前端技術棧(二):從Flux到Redux

上一篇分析了Flux出現的背景和原理,最核心的思想就是“組件化+單向數據流”。 但是,Flux在設計上並非完美,具體來說主要存在以下2個不足: 1. 多Store數據依賴 由於Flux採用多Store設計,各個Store之間可能存在數

原创 前端技術棧(一):從MV*到Flux

最近要開始搞網頁端錢包,本着幹一行愛一行的原則,擼起了前端框架。 項目基於螞蟻金服的dva框架,實際上是對幾個流行的開源框架的整合,技術棧包括: react react-router redux redux-saga dva ant

原创 區塊鏈技術分享導讀目錄(持續更新)

還記得第一次接觸到以太坊源碼時,就被它作爲“世界計算機”的宏偉構想深深吸引。實際上,可以認爲以太坊是在試圖屏蔽底層硬件的差異,制定統一的虛擬指令集,並利用去中心化維護整個系統的穩定性。此外,還可以把以太坊看成一個去中心化的App St

原创 一分鐘瞭解硬件錢包

所謂硬件錢包,就是把你的私鑰保存在一個不聯網的設備上。因爲不聯網,所以其他人永遠都無法竊取你的私鑰。 硬件錢包品牌繁多,比如長得像車鑰匙的Trezor: 長得像U盤的Ledger Nano: 長得像手機的Ellipal: 甚至還

原创 Go編譯緩存導致C文件修改後未重新編譯

今天和同事一起看了一個很詭異的問題,研究了半天發現是由於Go的編譯緩存導致的,記錄下來方便其他遇到問題的同學參考。 首先編寫一個hello.go文件,裏面調用了C函數: package main /* #include "./lib