- 2018.08.06
- javascript區塊鏈, solidity, 區塊鏈,
Solidity學習(1)
1.概要 Solidity是契約導向的實現智慧合約的高階語言。 它受到C ,Python和JavaScript的影響,旨在針對以太坊虛擬機器(EVM)。 Solidity是靜態型別的,支援繼承,庫和複雜的使用者定義型別等功能。 Solidity可以建立投票,眾籌,拍賣(盲拍),多重簽名錢包等等的合約 […]
-->
程式前沿 幫助程式設計師解決問題,增加專業技能,提升個人能力與未來世界競爭力。
1.概要 Solidity是契約導向的實現智慧合約的高階語言。 它受到C ,Python和JavaScript的影響,旨在針對以太坊虛擬機器(EVM)。 Solidity是靜態型別的,支援繼承,庫和複雜的使用者定義型別等功能。 Solidity可以建立投票,眾籌,拍賣(盲拍),多重簽名錢包等等的合約 […]
Voting 投票 接下來的合約非常複雜,但展示了很多Solidity的特性。它實現了一個投票合約。當然,電子選舉的主要問題是如何賦予投票權給準確的人,並防止操縱。我們不能解決所有的問題,但至少我們會展示如何委託投票可以同時做到投票統計是自動和完全透明。 思路是為每張選票建立一個合約,每個投票選項提 […]
背景 標準的與以太坊網路互動的方法是通過以太坊官方構建的Web3庫。儘管這個庫非常有用,但使用其提供介面與合約互動有些困難,特別是以太坊的新手。為降低學習曲線,Truffle使用Ether Pudding庫,它也是基於Web3的基礎之上,目的是為了讓互動更簡單。 讀寫資料 以太坊網路把在網路上讀與寫 […]
這是Solidity教程系列文章第8篇介紹Solidity API,它們主要表現為內建的特殊的變數及函式,存在於全域性名稱空間裡。 Solidity 系列完整的文章列表請檢視分類-Solidity。 寫在前面 Solidity 是以太坊智慧合約程式語言,閱讀本文前,你應該對以太坊、智慧合約有所瞭 […]
Solidity是通過回退狀態的方式來處理異常錯誤(有點像事務回滾)。發生異常時會撤消當前呼叫(及其所有子呼叫)所改變的狀態,同時給呼叫者返回一個錯誤標識。注意捕捉異常是不可能的,因此沒有try catch。 1.條件檢查 Solidity提供了assert和require來進行 * require […]
本小節主要討論enum型別, 1. enum基本結構 先對enum結構有個基本的認識,這個enum主要描述產品是否用過(New,Used) enum ProductCondition{ New, Used } 2. 在struct中使用e […]
modifier即函式的修改器,可以用來改變一個函式的行為,控制函式的邏輯。修改器是一種合約屬性,可以被繼承和重寫。 下面以程式碼為例進行介紹(程式碼來源於CryptoKitties專案KittyAccessControl.sol合約,詳細程式碼可以檢視https://github.com/dapp […]
智慧合約概述 簡單的智慧合約 讓我們先看一下最基本的例子。現在就算你都不理解也不要緊,後面我們會有更深入的講解。 儲存 pragma solidity ^0.4.0; contract SimpleStorage { uint storedData; function set(uint x) pub […]
1.建立專案 在之前的簡易代幣建立中,我們使用了truffle init指令來初始化專案,在Truffle推出Boxes功能之後,我們可以直接套用稱作react-box的樣板,此樣板已經整合create-react-app,可以直接用來開發react web,省下專案設定的時間。 [email protected] […]
開發環境 我在ubuntu環境下開發的,建議裝好vscode,nodejs 。選用別的編譯器也可以。 裝好nodejs後裝一下truffle npm install -g truffle truffle version 可以看到版本號,說明安裝成功。 開發語言 […]