原创 Win10下開發部署Dapp(4):solidity快速入門(基礎篇)

基礎篇 Solidity是一門靜態類型的腳本語言,我們可以對照C++的語法進行快速記憶。 ###1.基本保留字與基本類型 contract:類似於class,定義一個合約,具有構造函數,僅在創建合約時被調用。 function

原创 智能合約開發與調試要點整理——基於truffle框架

開發以太坊DAPP已有一段時間,期間折騰過兩個體量較大的合約項目,在調試合約的時候嘗試過不少思路,踩過很多坑。感覺有必要總結一下DAPP開發的一些經驗教訓。 1,solidity雖然是圖靈完備的,但是個人感覺,它並不適合做大型的業

原创 solidity多重繼承與C3線性化

solidity支持多重繼承,就不可避免地要面對棱形繼承這種問題。solidity的解決方案與Python類似,使用C3 線性化來確定方法的調用順序,也叫方法解析順序(Method Resolution Order,MRO) 該算

原创 Eth2.0 前景堪憂

以太坊在1.0時代扛起了"區塊鏈2.0"的大旗,它支持智能合約,使各種ICO層出不窮,各種Dapps如雨後春筍般冒出,DAO、Bancor、CryptoKitty 等著名dapps賺足了圈內的流量與關注,FairWin等合約遊戲也

原创 zk-SNARKs

對零知識證明的一些整理(未完待續) 1,同態隱藏(Homomorphic Hidings) 給定E(x),很難反推出x的值 若x != y, 則E(x) != E(y) 若已知 E(x) 與 E(y),則可計算出E(x+y)

原创 Fabric中的“賬戶”體系

本文的聯盟鏈是以Fabric爲例。本文中transaction翻譯成事務,而非交易。 聯盟鏈相對於公鏈,最大的不同在於:聯盟鏈上的數據不是對所有人都公開的,只有聯盟內的成員纔可以訪問、寫入鏈上數據。 第二個重要的區別:聯盟鏈不發幣

原创 C++14與C++17新特性,你想知道的都在這

這篇博文躺在草稿箱裏好久了,今天有點時間,整理下發出來 ------------------------------------------C++14篇---------------------------------------

原创 C++11新特性集錦——新標準庫

新版本的標準庫添加了許多新的特性,本文只介紹特性的簡單使用,不做原理上的探究,否則篇幅將無法控制。儘管如此,這篇博客還是跳票了很久,呵呵呵 3.1智能指針std::shared_prt、std::make_shared、std::

原创 solidity快速入門(擴展篇)

擴展篇 1.繼承、多態、super 與 C3 線性化 solidity支持繼承,並且支持多重繼承。 下面的代碼展示了基本的繼承的作用:代碼重用。 contract ERC20Token{ string public nam

原创 大型合約系統的一個構建思路與實踐——升級版

固定的入口合約(不可升級) 固定的事件合約(不可升級) 固定的Data合約(不可升級) 通過Owner關係、白名單等機制控制業務邏輯合約對以上三個合約的讀寫權限 業務邏輯合約地址註冊到Data,業務邏輯合約地址之間的依賴通過Da

原创 以太坊智能合約“天價bug”回顧、模擬、預防

1,DAO 在以太坊上進行DAPP開發的人應該都知道這個著名的bug,它直接導致了以太坊的分叉。 該bug是由於使用了call方法引起的循環調用; bug威力:直接導致以太坊分叉 源代碼 function splitDAO(uin

原创 C++11新特性集錦——新語意

本文是C++11新特性系列的第二篇們主要記錄C++11的新語意。 2,新的語義 2.1 大括號{}與初始化 C++11之前,有這麼幾種初始化的方式 默認初始化: A a; //調用默認構造函數 值初始化:A a=1; //調用單參

原创 C++11新特性集錦——新關鍵字

C++11新引入的特性比較多,這裏簡單記錄下每個特性的大致情況,無法將細節一一描述清楚——那樣每個特性幾乎都要花費一篇博客的篇幅來記錄。本文從新增的關鍵字 、 新增的語義 、新增的標準庫三個方面來記錄這些新特性。原本打算將這三部分放到

原创 使用truffle測試solidity中的重載函數

ERC223標準定義了三個重載的transfer函數。這給truffle測試帶來了不少麻煩——直接在測試框架中調用transfer函數會報錯:參數錯誤之類的信息。 本文使用web3的sendTransaction方法實現重載函數的調用

原创 歐拉與RSA非對稱加密算法

首先把膝蓋獻給萬能的歐拉。 在深入討論RSA加密算法之前,我們先補一下基礎:同餘、歐拉函數、模反元素、歐拉定理: 同餘 給定一個正整數m,如果兩個整數a和b滿足a-b能夠被m整除,即(a-b)/m得到一個整數,那麼就稱整數a與b對模m