以太坊開發錢包應用
⑴ 以太坊錢包哪款比較好用,交易平台哪個靠譜
本周,比特幣錢包公司 KryptoKit 發布了以太坊錢包 Ethereumwallet 的測試版。雖然以太坊這樣的比特幣2.0平台非常具有創新性,但是要使其成功,首先必須要有易於使用的應用。以太坊擁有眾多非常有前景的概念,但是許多人不得不承認以太坊對於普通消費者來說仍然不具備實際可操作性。因此,Cointelegragh 將介紹3個專為以太坊用戶開發的錢包,這些錢包易於使用,甚至連上了年紀的爺爺奶奶都能使用哦。 Ethereumwallet.com Ethereumwallet 是一款跨平台客戶端網頁錢包,由比特幣錢包公司 KryptoKit 於9月4日發布,KryptoKit 的 CEO 是以太坊的聯合創始人安東尼•迪•約里奧(Anthony Di iorio)。 Ethereumwallet 類似於 KryptoKit 推出的比特幣錢包 Rushwallet,Ethereumwallet 的測試版仍然是基於URL書簽系統而創建的錢包。當然最基本的功能都具備,你可以發送和接收以太幣並加密你的私鑰。 錢包目前支持的功能包括: 1.創建錢包、發送和接收以太幣 2. 創建客戶端錢包、簽署交易(密鑰不會被發送到外部伺服器) 3. 可通過「查看頁面源代碼」審查代碼 4. 可以通過下載網頁錢包(Ctrl + S),離線創建錢包 5. 基於書簽客戶端鏈接,無需用戶名或登錄信息。 即將發布的一些功能包括: 1.導出私鑰功能 2.支持安卓系統掃描的二維碼 3.即將發布 KryptoKit、 iOS 和 Android 版的錢包,支持跨平台。 更多詳情,見 Reddit 帖子。 EthereumWallet.org EthereumWallet.org 的開發者艾倫•鄧克利告訴 Cointelegraph : [...]
⑵ 以太坊軟體錢包合法嗎
以太坊是合法的。
有人質疑以太坊不是合法的,可以肯定的是以太坊不是騙局,它只是在個別國家不被接受。之所以推出時間不長就迅速普及,最主要的原因之一就是其底層中國法院宣布以太坊具有經濟價值的合法財產的帖子首次出現在比特幣新聞上。如若轉載,據報道,中國地方法院裁定以太坊的加密貨幣,是具有經濟價值的合法財產
BNB的安全合法性。A:Binance Coin是由幣安平台發行的代幣,簡稱「BNB」。其發行總量恆定為2億個,且保證永不增發。BNB是基於以太坊Ethereum發行的去中心化的區塊鏈數字資產,它是基於許多投資者都是會問以太坊在我國合理合法是不是合理合法,這一我也不可以確立的對你說,由於虛擬財產在大家我國是受法律法規維護的。
⑶ iOS開發ETH錢包
框架:web3swift => https://github.com/matter-labs/web3swift
1、創建錢包
2、導入錢包
3、獲取余額
4、轉賬
5、調用智能合約
注意:
1、網路的切換
測試網 let web3 = Web3.InfuraRinkebyWeb3()
主網 let web3 = Web3.InfuraMainnetWeb3()
2、轉賬相關的,必須配置
KeystoreManager
TransactionOptions
3、調用智能合約,參數不對,會直接返回nil
⑷ 以太坊錢包是用來做什麼的
以太坊是一個開源的有智能合約功能的公共區塊鏈平台。截至2018年2月,以太幣是市值第二高的加密貨幣,僅次於比特幣。快速創建以太坊錢包的方法在天天領幣上有哦,根據操作來很快就能完成,創建完成後還可以直接在網站里領取免費的虛擬幣。
⑸ eth錢包開發(nodejs)(一)
tips: sendEthTransaction方法將eth轉賬和token轉賬合並,轉賬eth時將tokenValue賦值為0,轉賬token時將value賦值為0即可
⑹ 以太坊落地應用有哪些
Giten、Cent、Veil等等。
01、Giten:激勵開源開發者的網路。02、Cent:可以通過發帖賺錢的社交網路。03、Veil:基於真實世界事件下注的交易平台。04、CryptoKittes:收藏和養育數字貓的游戲。05、DAI:穩定加密貨幣,1DAI對應1美元。06、Status聊天工具、加密貨幣錢包。07、uPort:安全的身份和數據管理工具。08、Brave:一個看廣告有收益的安全Web瀏覽器。09、Opera,Dapp瀏覽器和加密錢包10。EthereumNameService,以太坊名稱服務ENS,創建個性化名稱對應錢包地址。11、Civic:安全的身份和數據管理工具。12、SelfKe:自我管理的身份系統。13、Alethio:以太坊網路分析平台。
以太坊是一個開源的,能讓大家自由開發智能合約的區塊鏈公共平台,就像互聯網中安卓,Windows系統一樣,它能提供一套專門的腳步語言,讓大家可以隨意地在上面開發。
⑺ 以太坊錢包有什麼用處
存儲數字貨幣。
各種各樣的轉賬都需要賬戶,而在我們交易平台上的交易都需要發起和接收的一方,缺一不可。
用錢包來管理賬戶,而同時做好備份也是很重要的。我們需要自己掌控自己的錢包。
⑻ 2018TPC必火,全解析
TPC 誕生背景:
TPC的誕生區別於現有模式,一般模式是先開發區塊鏈應用並在區塊鏈中產生,用來在區塊鏈中作為記賬單位而存在。然後依據應用的發展再炒高的價值。
顯然,目前所有區塊鏈都是這樣的現狀。而目前在所有可以用互聯網技術服務的行業中基本處於飽和或壟斷狀態,所以目前區塊鏈技術在真實的應用當中比較難落地,因為目前區塊鏈整體行業處於萌芽狀態中,對很多事物仍然處於探索之中。所以目前形勢,區塊鏈應該是一個重商業運營的技術服務,而非重技術服務輕商業運營。
緬甸銀行業現狀與支付系統的可行性
緬甸目前13家外資銀行,本土銀行24家,2016年央行對所有銀行全部實現電算化,這對支付行業的外部環境是一個非常好的喜訊。緬甸6000萬人口,有3000+萬智能手機,卻沒有本土的APP,在這之前外部環境與第三方支付不在,所以基於互聯網的創業基本都失敗了。正是因為如此,第三方支付才能夠成為緬甸的新經濟基石。
緬甸3000+萬智能手機用戶,僅以仰光為例,每年600+億美金的消費額度,線上消費更是難以估量,未來5億的投放量,從0.14美金來看,如果線下市場佔有率為10%就有60億美金的流通,還未包含線上,其上漲空間甚至超過20倍。Grab在緬甸投資5億美金就是緬甸移動互聯網市場最好的寫照。當第三方支付用戶達到500萬用戶的時候,其資本估值將達到幾十億美金以上。
TPC
TPC基於以太坊智能合約,TPC就是以太坊的一條側鏈,同時也是主鏈,而後續的所有基於金融、理財、基金等等的開發與探索將都依託TPC進行,其後的所有開發將都是TPC的側鏈。TPC目前可以在imToken等以太坊錢包均可以進行收發,並預留未來開發介面:
其token完整版:
[ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string", "value": "TPC" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256", "value": "10000000000000" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8", "value": "4" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256", "value": "0" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string", "value": "TPC" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "frozenAccount", "outputs": [ { "name": "", "type": "bool", "value": false } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "target", "type": "address" }, { "name": "freeze", "type": "bool" } ], "name": "freezeAccount", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "tokenName", "type": "string", "index": 0, "typeShort": "string", "bits": "", "displayName": "token Name", "template": "elements_input_string", "value": "TPC" }, { "name": "tokenSymbol", "type": "string", "index": 1, "typeShort": "string", "bits": "", "displayName": "token Symbol", "template": "elements_input_string", "value": "TPC" }, { "name": "decimalUnits", "type": "uint8", "index": 2, "typeShort": "uint", "bits": "8", "displayName": "decimal Units", "template": "elements_input_uint", "value": "4" }, { "name": "initialSupply", "type": "uint256", "index": 3, "typeShort": "uint", "bits": "256", "displayName": "initial Supply", "template": "elements_input_uint", "value": "10000000000000" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "target", "type": "address" }, { "indexed": false, "name": "frozen", "type": "bool" } ], "name": "FrozenFunds", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" } ]
完整內容會發布在GitHub中。
TPC選擇以太坊是因為以太坊是一個成熟的開發平台,在區塊鏈應用中可以節省大量時間,並為後續開發降低難度。獨自開發私有鏈需要大量技術人員進行迭代更新,其維護成本、應用成本、使用成本、時間成本、開發成本、價值成本不成比例,因為TPC是為商業模式而誕生。最大限度去挖掘商業價值。
TPC 的未來
緬甸銀行業的落後並不能阻擋TPC的布局,TPC將優先進駐銀行,商場,通過已有錢包進行收發。第三方支付平台已經進入最後調試階段,上線後再與之打通,成為必要的支付方式。TPC通過智能合約為銀行、保險、數據分析、基金、現貨、期貨等金融行業提供數據解決方案,並共享信用數據,同時作為獎勵為數據進行獎勵支出。因為本身TPC就是智能合約,通過其介面的開放可以為未來所有的金融產業做數據支持。而TPC的未來會成為理財產品,其覆蓋人群將會超過1500萬人,未來的價值空間將會呈現一個幾何式的增長。價格也會隨之而爆發。
TPC 總量
總量為10億,其中5億作為政府基金存在逐步釋放到市場進行流通,而後5億將逐步用於支付市場的流通。
TPC 商業價值
TPC最大的價值在於打通與第三方支付與理財應用的信用數據。通過嵌入在第三方支付體系當中可以使TPC進行用於線上、線下支付,打通最重要的流通環節,因為之所以有價格就是因為其價值,而其價值背後就是流通屬性。當有流通後就會產生買賣需求,所以才會有不同的價格走向。如果不能解決的流通性,那麼就是空氣幣,TPC的商業價值就在於用商業思維解決區塊鏈--應用的閉環模式。在TPC中,三者相對獨立而又結合。但公開、透明、安全。
這就好比比特幣一樣,比特幣之所以在2010年之前默默無聞不是因為沒人知道,做極客的那一小撮人很早就知道了比特幣的存在,但是他不具備流通屬性而一直不值錢,2010年那個程序員拿1000個比特幣換了一個披薩的新聞還不時被我們作為笑話,其實這就是背後流通性的不暢導致的。2011年絲綢之路的誕生2年時間150億美金的交易額全部來自比特幣,才讓比特幣成為了眾人皆知。可以說絲綢之路是讓沉睡的比特幣覺醒的一劑猛葯。
TPC 的商業生態
第三方支付 - 電商生態 - 游戲生態 - 社交生態
第三方支付相當於一個承接TPC的平台,因為緬甸目前沒有第三方支付,所以第三方支付在實際運作中會成為類似支付寶或者paypal的應用,那支付寶或paypal的價值因為第三方支付支付平台的誕生只是商業生態中的第一步,正是因為支付平台的誕生,TPC才可以進行流通。而第三方支付平台的出現才可以解決目前緬甸沒有電商、社交、游戲等等APP的局面,之前非常多的人都在緬甸建立電商、分類信息、游戲等平台,但是都倒閉了。其最重要的原因就是沒有第三方支付平台,第三方支付平台可成為緬甸線上、線下的一個新支付通道。當第三方支付平台的建立之後,所有其他公司的應用都會將其作為一種支付渠道接入,而TPC作為一種貨幣基金就會充分成為流通需求而出現。
TPC 為什麼依託以太坊而不是獨自開發
1.以太坊開發平台成熟,穩定
2.開發難度低,使用方便,面向人群更廣
TPC 運營團隊
丁林,CEO,緬籍華僑,主導投資Grandland以及一系列投資方案,累計投資超過7000萬美金。貌明,COO,緬籍華僑,原telenor緬甸高級經理,運營、執行能力強勢。負責整體運營與市場銷售。還有之前負責市場運營、市場調研員、文化分析員等大量優秀夥伴。
開發團隊由新加坡鄭憶安擔任主研,精通JAVA與nodejs,10年開發經驗,並且由來自中國、捷克的團隊一起進行技術探索。TPC研究室為其提供基礎支持。
TPC 分配方案
8%-----用於私募,早期投資者和對TPC前景看好的會員。
12%——ICO公募眾籌投資者,戰略投資夥伴。
10%——研究室基金,對技術的探索和未來應用落地
5%——-市場推廣,宣傳分發,戰略合作
15%——-商業落地部署,商業合作,市場開拓
50%——存放政府,根據市場逐步釋放
市場流通少,價值又可以落地實現。價格一定會幾何級增長
如果用一句話講 TPC
存在於第三方支付之中,未來覆蓋與使用人群會在千萬級以上,而現在能接近千萬級的只有比特幣,以太坊。
⑼ 【ETH錢包開發02】導入錢包
本文主要講解通過助記詞、keystore、私鑰 3種方式來導入錢包。導入錢包就是說根據輸入的這3者中的一個去重新生成一個新的錢包。導入錢包的過程和創建的過程其實是差不多的。
根據助記詞導入錢包不需要原始密碼,密碼可以重新設置。根據用戶輸入的助記詞,先驗證助記詞的合規性(格式、個數等),驗證正確後,配合用戶輸入的密碼重新生成一個新的錢包。
驗證助記詞的合規性(格式、個數等)
助記詞導入錢包
通過私鑰導入錢包其實和創建錢包的過程基本一致。因為私鑰在導出的時候轉換成了16進制,所以在導入私鑰的時候,要把16進制轉換為byte數組。
keystore就是錢包文件,實際上就是錢包信息的json字元串。導入keystore是需要輸入密碼的,這個密碼是你最後導出keystore時的密碼。將keystore字元串變成walletFile實例再通過 Wallet.decrypt(password, walletFile); 解密,成功則可以導入,否則不能導入。
這是Web3j的API,程序走到這里經常OOM!
具體原因的話,我就不多說了,細節大家可以看這里
https://www.jianshu.com/p/41d4a38754a3
解決辦法
根據源碼修改 decrypt 方法,這里我用一個已經修改好的第三方庫
修改後的解密方法
導入Kestore
1、導入助記詞和私鑰是不需要以前的密碼的,而是重新輸入新的密碼;導入Keystore則需要以前的密碼,如果密碼不正確,會提示地址和私鑰不匹配。
2、關於備份助記詞
用過imtoken的同學可以看到imtoken是可以導出(備份)助記詞的。這個一開始我也很困惑,後來了解到其實它實在創建錢包的時候,在app本地保存了助記詞,導出只是講數據讀取出來而已。還有一點,imtoken一旦備份了助記詞之後,之後就沒有備份那個功能了,也就是說助記詞在本地存儲中刪除了;而且導入錢包的時候也是沒有備份助記詞這個功能的。
⑽ 以太坊是什麼丨以太坊開發入門指南
以太坊是什麼丨以太坊開發入門指南
很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平台,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。
以太坊是什麼
以太坊(Ethereum)是一個建立在區塊鏈技術之上, 去中心化應用平台。它允許任何人在平台中建立和使用通過區塊鏈技術運行的去中心化應用。
對這句話不理解的同學,姑且可以理解為以太坊是區塊鏈里的Android,它是一個開發平台,讓我們就可以像基於Android Framework一樣基於區塊鏈技術寫應用。
在沒有以太坊之前,寫區塊鏈應用是這樣的:拷貝一份比特幣代碼,然後去改底層代碼如加密演算法,共識機制,網路協議等等(很多山寨幣就是這樣,改改就出來一個新幣)。
以太坊平台對底層區塊鏈技術進行了封裝,讓區塊鏈應用開發者可以直接基於以太坊平台進行開發,開發者只要專注於應用本身的開發,從而大大降低了難度。
目前圍繞以太坊已經形成了一個較為完善的開發生態圈:有社區的支持,有很多開發框架、工具可以選擇。
智能合約
什麼是智能合約
以太坊上的程序稱之為智能合約, 它是代碼和數據(狀態)的集合。
智能合約可以理解為在區塊鏈上可以自動執行的(由事件驅動的)、以代碼形式編寫的合同(特殊的交易)。
在比特幣腳本中,我們講到過比特幣的交易是可以編程的,但是比特幣腳本有很多的限制,能夠編寫的程序也有限,而以太坊則更加完備(在計算機科學術語中,稱它為是「圖靈完備的」),讓我們就像使用任何高級語言一樣來編寫幾乎可以做任何事情的程序(智能合約)。
智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如:數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯網、點對點交易等等。
目前除數字貨幣之外,真正落地的應用還不多(就像移動平台剛開始出來一樣),相信1到3年內,各種殺手級會慢慢出現。
編程語言:Solidity
智能合約的默認的編程語言是Solidity,文件擴展名以.sol結尾。
Solidity是和JavaScript相似的語言,用它來開發合約並編譯成以太坊虛擬機位元組代碼。
還有長像Python的智能合約開發語言:Serpent,不過建議大家還是使用Solidity。
Browser-Solidity是一個瀏覽器的Solidity IDE, 大家可以點進去看看,以後我們更多文章介紹Solidity這個語言。
運行環境:EVM
EVM(Ethereum Virtual Machine)以太坊虛擬機是以太坊中智能合約的運行環境。
Solidity之於EVM,就像之於跟JVM的關系一樣,這樣大家就容易理解了。
以太坊虛擬機是一個隔離的環境,在EVM內部運行的代碼不能跟外部有聯系。
而EVM運行在以太坊節點上,當我們把合約部署到以太坊網路上之後,合約就可以在以太坊網路中運行了。
合約的編譯
以太坊虛擬機上運行的是合約的位元組碼形式,需要我們在部署之前先對合約進行編譯,可以選擇Browser-Solidity Web IDE或solc編譯器。
合約的部署
在以太坊上開發應用時,常常要使用到以太坊客戶端(錢包)。平時我們在開發中,一般不接觸到客戶端或錢包的概念,它是什麼呢?
以太坊客戶端(錢包)
以太坊客戶端,其實我們可以把它理解為一個開發者工具,它提供賬戶管理、挖礦、轉賬、智能合約的部署和執行等等功能。
EVM是由以太坊客戶端提供的。
Geth是典型的開發以太坊時使用的客戶端,基於Go語言開發。 Geth提供了一個互動式命令控制台,通過命令控制台中包含了以太坊的各種功能(API)。Geth的使用我們之後會有文章介紹,這里大家先有個概念。
Geth控制台和Chrome瀏覽器開發者工具里的面的控制台是類似,不過是跑在終端里。
相對於Geth,Mist則是圖形化操作界面的以太坊客戶端。
如何部署
智能合約的部署是指把合約位元組碼發布到區塊鏈上,並使用一個特定的地址來標示這個合約,這個地址稱為合約賬戶。
以太坊中有兩類賬戶:
· 外部賬戶
該類賬戶被私鑰控制(由人控制),沒有關聯任何代碼。
· 合約賬戶
該類賬戶被它們的合約代碼控制且有代碼與之關聯。
和比特幣使用UTXO的設計不一樣,以太坊使用更為簡單的賬戶概念。
兩類賬戶對於EVM來說是一樣的。
外部賬戶與合約賬戶的區別和關系是這樣的:一個外部賬戶可以通過創建和用自己的私鑰來對交易進行簽名,來發送消息給另一個外部賬戶或合約賬戶。
在兩個外部賬戶之間傳送消息是價值轉移的過程。但從外部賬戶到合約賬戶的消息會激活合約賬戶的代碼,允許它執行各種動作(比如轉移代幣,寫入內部存儲,挖出一個新代幣,執行一些運算,創建一個新的合約等等)。
只有當外部賬戶發出指令時,合同賬戶才會執行相應的操作。
合約部署就是將編譯好的合約位元組碼通過外部賬號發送交易的形式部署到以太坊區塊鏈上(由實際礦工出塊之後,才真正部署成功)。
運行
合約部署之後,當需要調用這個智能合約的方法時只需要向這個合約賬戶發送消息(交易)即可,通過消息觸發後智能合約的代碼就會在EVM中執行了。
Gas
和雲計算相似,佔用區塊鏈的資源(不管是簡單的轉賬交易,還是合約的部署和執行)同樣需要付出相應的費用(天下沒有免費的午餐對不對!)。
以太坊上用Gas機制來計費,Gas也可以認為是一個工作量單位,智能合約越復雜(計算步驟的數量和類型,佔用的內存等),用來完成運行就需要越多Gas。
任何特定的合約所需的運行合約的Gas數量是固定的,由合約的復雜度決定。
而Gas價格由運行合約的人在提交運行合約請求的時候規定,以確定他願意為這次交易願意付出的費用:Gas價格(用以太幣計價) * Gas數量。
Gas的目的是限制執行交易所需的工作量,同時為執行支付費用。當EVM執行交易時,Gas將按照特定規則被逐漸消耗,無論執行到什麼位置,一旦Gas被耗盡,將會觸發異常。當前調用幀所做的所有狀態修改都將被回滾, 如果執行結束還有Gas剩餘,這些Gas將被返還給發送賬戶。
如果沒有這個限制,就會有人寫出無法停止(如:死循環)的合約來阻塞網路。
因此實際上(把前面的內容串起來),我們需要一個有以太幣余額的外部賬戶,來發起一個交易(普通交易或部署、運行一個合約),運行時,礦工收取相應的工作量費用。
以太坊網路
有些著急的同學要問了,沒有以太幣,要怎麼進行智能合約的開發?可以選擇以下方式:
選擇以太坊官網測試網路Testnet
測試網路中,我們可以很容易獲得免費的以太幣,缺點是需要發很長時間初始化節點。
使用私有鏈
創建自己的以太幣私有測試網路,通常也稱為私有鏈,我們可以用它來作為一個測試環境來開發、調試和測試智能合約。
通過上面提到的Geth很容易就可以創建一個屬於自己的測試網路,以太幣想挖多少挖多少,也免去了同步正式網路的整個區塊鏈數據。
使用開發者網路(模式)
相比私有鏈,開發者網路(模式)下,會自動分配一個有大量余額的開發者賬戶給我們使用。
使用模擬環境
另一個創建測試網路的方法是使用testrpc,testrpc是在本地使用內存模擬的一個以太坊環境,對於開發調試來說,更方便快捷。而且testrpc可以在啟動時幫我們創建10個存有資金的測試賬戶。
進行合約開發時,可以在testrpc中測試通過後,再部署到Geth節點中去。
更新:testrpc 現在已經並入到Truffle 開發框架中,現在名字是Ganache CLI。
Dapp:去中心化的應用程序
以太坊社區把基於智能合約的應用稱為去中心化的應用程序(DecentralizedApp)。如果我們把區塊鏈理解為一個不可篡改的資料庫,智能合約理解為和資料庫打交道的程序,那就很容易理解Dapp了,一個Dapp不單單有智能合約,比如還需要有一個友好的用戶界面和其他的東西。
Truffle
Truffle是Dapp開發框架,他可以幫我們處理掉大量無關緊要的小事情,讓我們可以迅速開始寫代碼-編譯-部署-測試-打包DApp這個流程。
總結
我們現在來總結一下,以太坊是平台,它讓我們方便的使用區塊鏈技術開發去中心化的應用,在這個應用中,使用Solidity來編寫和區塊鏈交互的智能合約,合約編寫好後之後,我們需要用以太坊客戶端用一個有餘額的賬戶去部署及運行合約(使用Truffle框架可以更好的幫助我們做這些事情了)。為了開發方便,我們可以用Geth或testrpc來搭建一個測試網路。
註:本文中為了方便大家理解,對一些概念做了類比,有些嚴格來不是准確,不過我也認為對於初學者,也沒有必要把每一個概念掌握的很細致和准確,學習是一個逐步深入的過程,很多時候我們會發現,過一段後,我們會對同一個東西有不一樣的理解。