摘要:它同時(shí)會(huì)檢查確保沒(méi)有意外發(fā)送的以太幣。當(dāng)任何以太幣被存入智能合約時(shí),匿名函數(shù)會(huì)被執(zhí)行,并會(huì)自動(dòng)拒絕接收以太幣。
作者:Alex Van de Sande
譯者:王建/蔡佳慧
譯者介紹:
王建:萬(wàn)云平臺(tái)區(qū)塊鏈技術(shù)專家,擁有多年應(yīng)用系統(tǒng)架構(gòu)經(jīng)驗(yàn),目前在區(qū)塊鏈落地方面進(jìn)行積極探索
蔡佳慧:萬(wàn)云平臺(tái)實(shí)習(xí)生,區(qū)塊鏈技術(shù)愛(ài)好者,英國(guó)帝國(guó)理工學(xué)院數(shù)學(xué)專業(yè)在讀
這篇教程是由以太坊Mist瀏覽器的負(fù)責(zé)人撰寫(xiě),完整地介紹了如何開(kāi)發(fā)一個(gè)標(biāo)準(zhǔn)的DApp。
以下是正文:
以太坊并不是那種需要一個(gè)STEM文憑(1)才能理解的高深莫測(cè)的智能合約應(yīng)用建立平臺(tái),它的目標(biāo)其實(shí)是成為萬(wàn)維網(wǎng)中各種應(yīng)用架構(gòu)的支柱。在這篇文章里,我們嘗試去闡述如何實(shí)現(xiàn)這個(gè)目標(biāo),并提供一些基本例子來(lái)展示如何開(kāi)始構(gòu)建一個(gè)去中心化的應(yīng)用。
譯者注:
(1)STEM文憑,指:科學(xué)-science,科技-technology,工程-engineering,及數(shù)學(xué)-mathematics相關(guān)文憑。
目標(biāo)讀者
這篇文章面向有以下背景的讀者:對(duì)于Web技術(shù)有基本了解,并知道如何構(gòu)建一個(gè)簡(jiǎn)單的基于javascript和html的應(yīng)用。同時(shí),希望使用這些技能為以太坊生態(tài)系統(tǒng)構(gòu)建應(yīng)用。
沒(méi)有服務(wù)器,應(yīng)用是如何運(yùn)行的
當(dāng)前,Web應(yīng)用中的服務(wù)器所做的工作已經(jīng)遠(yuǎn)超當(dāng)初的設(shè)想。除了提供靜態(tài)網(wǎng)頁(yè),它們還保管私有信息,處理用戶驗(yàn)證,同時(shí)還提供復(fù)雜數(shù)據(jù)分析與保存。而用戶計(jì)算機(jī)(在Web技術(shù)剛被發(fā)明的年代,這種設(shè)備會(huì)被認(rèn)為是超級(jí)計(jì)算機(jī))所做的僅僅是加載信息,并展示給用戶而已。
Current server models
與此不同的是,更為去中心化的系統(tǒng)結(jié)構(gòu)則會(huì)允許一種更加模塊化的處理方式。在這種方式中,不同的機(jī)器與不同的協(xié)議將會(huì)處理特定的任務(wù),有些屬于用戶方面,而也有些屬于配置于點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中的專用機(jī)器方面。因此所有的數(shù)據(jù)邏輯(什么會(huì)被儲(chǔ)存,誰(shuí)會(huì)去儲(chǔ)存,如何解決沖突等)是由區(qū)塊鏈上的智能合約解決的,靜態(tài)文檔由Swarm提供,同時(shí)實(shí)時(shí)通信在Whisper上進(jìn)行。用戶設(shè)備保留用戶認(rèn)證信息并運(yùn)行程序界面。
幾乎沒(méi)有單節(jié)點(diǎn)保留大量未加密數(shù)據(jù),這么做將會(huì)降低數(shù)據(jù)泄漏與攻擊的危險(xiǎn)。同時(shí),通過(guò)將其分散于全網(wǎng)絡(luò),也可以降低應(yīng)用的加載與花銷成本。由于所有這些協(xié)議都是去中心化的,任何人都可以連接到網(wǎng)絡(luò)并開(kāi)始提供特定服務(wù):比如說(shuō),如果用戶在一個(gè)功能強(qiáng)大的筆記本電腦上瀏覽,這臺(tái)電腦也可以向網(wǎng)絡(luò)鄰居們提供靜態(tài)文件。
Decentralised Server models
一個(gè)去中心化的系統(tǒng)結(jié)構(gòu)同時(shí)鼓勵(lì)創(chuàng)新:由于交互界面脫離于數(shù)據(jù),任何人都可以為同一個(gè)應(yīng)用提出一個(gè)全新的用戶界面,創(chuàng)建一個(gè)更富生機(jī)與競(jìng)爭(zhēng)力的生態(tài)系統(tǒng)??梢哉f(shuō),Twitter歷史上最具趣味性及創(chuàng)新力的時(shí)期之一便是它作為中央數(shù)據(jù)中心提供服務(wù),同時(shí)任何人都可以創(chuàng)建他們自己的Twitter應(yīng)用。
觀察它如何運(yùn)作
如果你想在學(xué)習(xí)這個(gè)應(yīng)用之前實(shí)驗(yàn)它,我們推薦你下載Mist并閱讀我們關(guān)于如何安裝應(yīng)用并運(yùn)行的入門教程(下載鏈接:https://github.com/ethereum/m...)。如果你只是想要看一看完整的應(yīng)用,你可以直接從Github上將其下載下來(lái)(下載鏈接:https://github.com/ethereum/s...)。
Stake Voice running on the Mist Browser
我們現(xiàn)在上手操作
我們將會(huì)建立一個(gè)叫做“Stake Voice”的非常簡(jiǎn)單的應(yīng)用。其主旨是允許以太幣投注人對(duì)任何他們想投的事情進(jìn)行投票,同時(shí)這個(gè)應(yīng)用將會(huì)計(jì)算所有同意與不同意這個(gè)陳述的以太幣總和。
下面代碼是這個(gè)應(yīng)用里用Solidity語(yǔ)言編寫(xiě)合約,Solidity是一種類似于javascript的語(yǔ)言,非常簡(jiǎn)單:
第一行建立了合約名稱,同時(shí)第二行創(chuàng)建了一個(gè)命名為“LogVote”的事件,它將會(huì)在日志文件中記錄以下內(nèi)容:
將會(huì)被投票的提案的哈希值
投票者是同意還是反對(duì)提案
投票者的地址
函數(shù)“vote”接著會(huì)啟動(dòng)日志,應(yīng)用程序稍后會(huì)計(jì)數(shù)。它同時(shí)會(huì)檢查確保沒(méi)有意外發(fā)送的以太幣。當(dāng)任何以太幣被存入智能合約時(shí),“匿名”函數(shù)會(huì)被執(zhí)行,并會(huì)自動(dòng)拒絕接收以太幣。
如果你想要學(xué)習(xí)關(guān)于Solidity更多的編程內(nèi)容,我們推薦你從以太網(wǎng)solidity教程( https://ethereum.org/dao)開(kāi)始,閱讀官方文檔頁(yè)面( https://solidity.readthedocs....)并在你的瀏覽器上嘗試在線編譯器( https://ethereum.github.io/br...)。
大致上就是如此了:你選擇一個(gè)哈希值,選擇一方然后運(yùn)行Vote()。所以這又如何轉(zhuǎn)化成一個(gè)投票應(yīng)用?
無(wú)服務(wù)器架構(gòu)
遵循KISS原則,我們正在制作盡量小卻仍然可使用的產(chǎn)品。這意味著我們不會(huì)使用數(shù)據(jù)庫(kù)來(lái)儲(chǔ)存提案,也不會(huì)使用普通javascript與純粹html之外的功能。
因此,我們將使用應(yīng)用本身的URL來(lái)保存提案文本,并且我們會(huì)使用URL來(lái)向用戶展示提案內(nèi)容,再生成一個(gè)用來(lái)檢測(cè)投票的哈希值。用戶可以使用社交媒體來(lái)分享他們想要辯論的提案,或者直接使用鏈接。
從基礎(chǔ)開(kāi)始
拿出你最喜歡的html框架,并在你本地機(jī)器上建立一個(gè)簡(jiǎn)單網(wǎng)站,然后在Mist上打開(kāi)它。Mist上所有的頁(yè)面都可以訪問(wèn)一個(gè)名叫web3的javascript對(duì)象,這也是你的主要工作區(qū)域。我們要做的第一件事就是檢查web3是否存在:
一些應(yīng)用開(kāi)發(fā)者也許會(huì)想要去加載他們自己的web3對(duì)象,以保證向前的兼容性。要做到這些,只需要在
標(biāo)簽前加上:
然后在初始函數(shù)上加上這個(gè)去加載你自定義的web3提供方(provider):
從區(qū)塊鏈上加載信息
你檢查到你連接到區(qū)塊鏈網(wǎng)絡(luò)上了嗎?但是到底是哪一個(gè)區(qū)塊鏈網(wǎng)絡(luò)呢?是主體(main)以太坊網(wǎng)絡(luò)嗎?也許是一個(gè)測(cè)試網(wǎng)絡(luò)(testnet)或者是一個(gè)私有(private)網(wǎng)絡(luò)?或許未來(lái)某一天,你會(huì)分叉(fork)一個(gè)以太坊源碼,構(gòu)建一個(gè)屬于你自己的全新品牌區(qū)塊鏈。檢查網(wǎng)絡(luò)的最好辦法是查看你想要加載的合約地址中是否包含了代碼。
此外,為了執(zhí)行一個(gè)合約你需要知道兩個(gè)基本事項(xiàng):它的地址和ABI(ABI是使用json編碼的接口文檔)。
現(xiàn)在有了上面這些內(nèi)容,你就能夠在啟動(dòng)函數(shù)上檢測(cè)合約是否存在了:
你甚至可以遞歸地運(yùn)行這條命令,嘗試用不同的地址去連接(假定你測(cè)試網(wǎng)絡(luò)上)。一旦你找到你的合約,你就可以在這里加載它了:
你用web3對(duì)象創(chuàng)建的javascript對(duì)象,能夠直接在瀏覽器中執(zhí)行所有以太坊命令。如果你僅僅想要加載一個(gè)合同的實(shí)例,你甚至可以在一行代碼里做到:
用戶鑒別
獲取用戶賬戶披露了這個(gè)用戶的大量信息:賬戶余額中有多少以太幣和其他代幣,以及其交易歷史。因此,默認(rèn)讓所有應(yīng)用獲取這一信息將會(huì)創(chuàng)建一個(gè)超級(jí)cookie,由于對(duì)隱私的侵犯,這是不可以接收的。另一方面,要求用戶為每一個(gè)網(wǎng)站創(chuàng)建一個(gè)帶有登錄信息的賬戶,這不僅對(duì)用戶來(lái)說(shuō)是一個(gè)痛苦,而且把你的隱私交給第三方來(lái)掌控,這種方式將會(huì)讓個(gè)第三方變成一個(gè)可被黑客隨意掘取的巨大蜂蜜罐。
面對(duì)這一困境,多數(shù)用戶選擇將自己個(gè)人信息及驗(yàn)證信息交由一個(gè)幾十億美元公司處理。隱私權(quán)不應(yīng)該為了取得實(shí)用性而妥協(xié):用戶應(yīng)該在掌控他們的個(gè)人信息的同時(shí),能夠輕松地驗(yàn)證身份信息以登入任何應(yīng)用。
使用Mist,應(yīng)用不擁有關(guān)于用戶的信息,除非用戶決定公布其自身信息給應(yīng)用。當(dāng)你想要查詢自己的賬戶信息,你應(yīng)該調(diào)用getAccounts函數(shù):
目前,返回對(duì)象是一個(gè)數(shù)組,其中包含了用戶擁有本地訪問(wèn)權(quán)限的簡(jiǎn)單賬戶,但是在未來(lái),其中還會(huì)包含用戶用于自身識(shí)別的智能合約賬戶。這將會(huì)使得用戶擁有權(quán)限來(lái)訪問(wèn)目前只供給集中式驗(yàn)證器(centralized authenticators)的特性,比如雙重身份驗(yàn)證或者云備份。用戶同樣將會(huì)擁有權(quán)限來(lái)訪問(wèn)未來(lái)針對(duì)智能合約的改進(jìn),比如在你遺失密鑰的時(shí)候允許一些受信任的朋友來(lái)給你訪問(wèn)賬戶的權(quán)限,或者對(duì)于不活動(dòng)賬戶行使自動(dòng)繼承權(quán)。
每一個(gè)未來(lái)的以太坊瀏覽器將會(huì)解決用戶如何向應(yīng)用辨別自身的問(wèn)題。在Mist中我們由兩種方式:要么用戶可以通過(guò)敲擊“connect”按鍵(目前僅叫做“no accounts”按鍵)來(lái)啟動(dòng)它,或者應(yīng)用可以通過(guò)調(diào)用“requestAccount”api來(lái)要求身份驗(yàn)證。
注意:這個(gè)列表上的賬戶僅僅只是用戶聲明擁有密鑰的賬戶,但是用戶并沒(méi)有提供證明,因此你可以展示一個(gè)不同的界面,但是不要給用戶發(fā)送任何與賬戶有關(guān)的加密信息。如果需要用戶證明他們的身份,你需要讓用戶對(duì)信息簽名,同時(shí)Mist也會(huì)在未來(lái)支持它,請(qǐng)注意這會(huì)要求用戶做一個(gè)額外步驟--輸入密碼。所以只在必要的時(shí)候,你才會(huì)需要用戶簽名。
投票
一旦你有了合約對(duì)象,投票就僅僅只是從javascript中調(diào)用它。調(diào)用函數(shù)會(huì)下面這段代碼處提供操作器將會(huì)解決用戶們?nèi)绾蜗驊?yīng)用辨別會(huì)包含用戶們彈出一個(gè)Mist交易面板,用戶可以在面板上檢查交易內(nèi)容,并輸入密碼。
因此,首先我們要?jiǎng)?chuàng)建兩個(gè)可以調(diào)用投票函數(shù)的可點(diǎn)擊對(duì)象:
注意我們調(diào)用的一個(gè)函數(shù)參數(shù)為true,另一個(gè)則為false。投票函數(shù)可以像下面這么簡(jiǎn)單:
“Ethervote”是我們之前創(chuàng)建的對(duì)象,并且“vote”是它函數(shù)中的一個(gè),對(duì)應(yīng)著合約函數(shù)的一個(gè):
根據(jù)函數(shù)的要求,我們需要傳入兩個(gè)參數(shù),并增加包含交易信息的第三個(gè)對(duì)象,比如:誰(shuí)發(fā)送了此交易,以及兩個(gè)可選項(xiàng):包含多少gas或者購(gòu)買gas的費(fèi)用。
由此,這將會(huì)創(chuàng)建一個(gè)面板,以要求用戶確認(rèn)交易——但是多數(shù)情況下它會(huì)返回一個(gè)錯(cuò)誤信息,因?yàn)槟壳皐eb3.eth.accounts對(duì)象默認(rèn)是一個(gè)空數(shù)組,所以你需要檢查其是否為空,若為空,則從用戶處請(qǐng)求賬戶:
你應(yīng)該只在用戶初始化一項(xiàng)操作的情況下請(qǐng)求賬戶:無(wú)中生有地顯示一項(xiàng)交易只會(huì)理所當(dāng)然地激怒用戶,更可能使他/她關(guān)閉你的應(yīng)用。如果我們觀察到應(yīng)用對(duì)于這一功能的濫用行為,我們可以對(duì)于何時(shí)彈出警報(bào)施加更為嚴(yán)格的要求。
查看合約
最后,為了累計(jì)所有的投票,我們需要查看合約事件,以及投票內(nèi)容。為了完成這些工作,在我們實(shí)例化“ethervote”后我們需要去運(yùn)行這個(gè)函數(shù)一次來(lái)查看事件:
上述代碼會(huì)從第180萬(wàn)(這是合約被上傳的時(shí)間點(diǎn))高度讀取所有的區(qū)塊,沒(méi)讀取一個(gè)區(qū)塊時(shí),都會(huì)執(zhí)行receivedEvent()函數(shù);并且,每產(chǎn)生一個(gè)新區(qū)塊時(shí),這個(gè)函數(shù)就會(huì)被再次觸發(fā),所以你不需要連續(xù)調(diào)用。那么,這個(gè)函數(shù)到底有什么用呢?
從初始solidity合約中,你可以看到LogVote帶有三個(gè)參數(shù),proposalHash,Pro和Addr:
所以這個(gè)函數(shù)的作用是它會(huì)使用函數(shù)web3.eth.getBalance來(lái)檢查投票地址當(dāng)下的以太幣余額。所有的余額都會(huì)返回以wei為單位的數(shù)字,也就是一個(gè)以太幣的1/1000000000000000000,這對(duì)于這個(gè)特定的應(yīng)用并非非常的有用,所以我們也使用另一個(gè)包含的web3函數(shù)來(lái)將其轉(zhuǎn)換為任何我們需要的以太幣單位。這里,我們會(huì)使用finney,也就是一個(gè)以太幣的一千分之一。
接下來(lái),這個(gè)函數(shù)將會(huì)保存投票者的余額及位置于一個(gè)以用戶地址為Key的Map上。所以如果有人投了兩次票,只有他們最后的意見(jiàn)會(huì)被保留。
另外我們還能鑒別用戶,并展示他們是否投票。
累積票數(shù)
最后,我們應(yīng)該加入一個(gè)獨(dú)立的函數(shù)來(lái)計(jì)算票數(shù)的總數(shù):
為什么我們會(huì)想要通過(guò)一個(gè)獨(dú)立的函數(shù)來(lái)累積票數(shù)呢?因?yàn)槠睌?shù)權(quán)重是建立在每一個(gè)賬戶的當(dāng)前余額之上的,我們應(yīng)該對(duì)于每一個(gè)新區(qū)塊重新計(jì)算余額,即使我們并沒(méi)有收到新的事件。為了做到這個(gè),你可以增加這個(gè)函數(shù),使它每收到一個(gè)新區(qū)塊時(shí)就會(huì)自動(dòng)執(zhí)行;
最后,直到加到最終的總數(shù)為止。我們之前已經(jīng)在同步模式下使用了eth.getBalance,在此模式下,應(yīng)用會(huì)等待前一個(gè)操作的結(jié)果再繼續(xù)。此處,因?yàn)槲覀兛梢詫?duì)于每一個(gè)區(qū)塊調(diào)用大量操作,我們將會(huì)在異步模式下運(yùn)行它:你可以異步調(diào)用getBalance函數(shù),等到節(jié)點(diǎn)返回后,再進(jìn)行票數(shù)統(tǒng)計(jì)。
就像你根據(jù)代碼所作的一樣,應(yīng)用所做的就是在循環(huán)投票地址中的每一個(gè)并得到它們的余額,只要它返回結(jié)果,它會(huì)將其加到支持或反對(duì)陣營(yíng)中,并計(jì)算總和。
額外的好處
一些附加說(shuō)明:當(dāng)沒(méi)有事件時(shí),什么也不會(huì)被返回,并且投票也不會(huì)被計(jì)算,所以你應(yīng)該對(duì)依賴于區(qū)塊鏈上事件的所有函數(shù)增加一個(gè)超時(shí)函數(shù)。
現(xiàn)在你可以隨意地使用所有你現(xiàn)有的網(wǎng)絡(luò)開(kāi)發(fā)工具來(lái)施展你想要的任何魔法。使用數(shù)字來(lái)構(gòu)建一個(gè)漂亮的3D可視化效果或者關(guān)聯(lián)你最愛(ài)的社交媒體來(lái)分享最佳問(wèn)題。
Mist也嘗試提供一些基本的導(dǎo)覽,以及UI方式來(lái)簡(jiǎn)化你的代碼。如果你想要你的應(yīng)用不包含header并且占據(jù)mist應(yīng)用的所有高度,只要將這個(gè)加入到你的
標(biāo)簽:
并且如果你想要使用Mist自身來(lái)導(dǎo)覽?你的應(yīng)用,你可以使用Mist.menu對(duì)象:
以太坊強(qiáng)大的一點(diǎn)是你可以在不需要許可的情況下,擴(kuò)展這項(xiàng)簡(jiǎn)單的合約功能:你可以把每個(gè)額外的功能放到一個(gè)獨(dú)立的合約里,讓每個(gè)獨(dú)立合約的功能簡(jiǎn)單且可以更輕松的調(diào)試。這也意味著別人可以在他們自己的應(yīng)用中使用你創(chuàng)建的合約并增加新的功能。同時(shí),所有的應(yīng)用使用相同的數(shù)據(jù)和后端。
你可以在Github上(https://github.com/ethereum/s...)在線體驗(yàn)這個(gè)應(yīng)用,但是這不是權(quán)威的規(guī)范,只是它眾多可能接口中的一個(gè)。同一個(gè)應(yīng)用也可能在你的電腦上或一個(gè)IPFS網(wǎng)絡(luò)( https://ipfs.io)中作為一個(gè)本地html文檔工作,并且在未來(lái)它可以使用Swarm技術(shù),在Mist里直接下載應(yīng)用。
關(guān)于如何嘗試的一些建議:
創(chuàng)建當(dāng)前可用發(fā)言列表。任何人都可以通過(guò)查看提案文本的sha3來(lái)檢查它們,所以你不需要任何許可。
創(chuàng)建線性化的評(píng)論,在這里用戶可以回復(fù)評(píng)論并通過(guò)投票來(lái)表達(dá)支持或反對(duì),就像一個(gè)基于Reddit的去中心化的投票制。
除了使用以太幣余額,你還可以使用一些其它的以太坊代幣,比如TheDAO或者Digix Gold來(lái)給你的問(wèn)題加權(quán)。因?yàn)樗泻霞s保存的原始位置是發(fā)送方,你可以檢查全部發(fā)送方的余額。或者也許你可以基于信譽(yù)(reputation)、甚至是業(yè)力(karma)或者其它方式來(lái)創(chuàng)建你自己的貨幣。
本文為萬(wàn)云BasS編譯,未經(jīng)允許不可轉(zhuǎn)載。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68278.html
摘要:它同時(shí)會(huì)檢查確保沒(méi)有意外發(fā)送的以太幣。當(dāng)任何以太幣被存入智能合約時(shí),匿名函數(shù)會(huì)被執(zhí)行,并會(huì)自動(dòng)拒絕接收以太幣。 作者:Alex Van de Sande譯者:王建/蔡佳慧譯者介紹: 王建:萬(wàn)云平臺(tái)區(qū)塊鏈技術(shù)專家,擁有多年應(yīng)用系統(tǒng)架構(gòu)經(jīng)驗(yàn),目前在區(qū)塊鏈落地方面進(jìn)行積極探索 蔡佳慧:萬(wàn)云平臺(tái)實(shí)習(xí)生,區(qū)塊鏈技術(shù)愛(ài)好者,英國(guó)帝國(guó)理工學(xué)院數(shù)學(xué)專業(yè)在讀 這篇教程是由以太坊Mist瀏覽器的負(fù)責(zé)人...
摘要:一選擇客戶端為什么有多個(gè)以太坊客戶端以太坊客戶端與虛擬機(jī)和運(yùn)行環(huán)境類似,能夠讓你在電腦上運(yùn)行以太坊程序。參考資料文章中的列表對(duì)應(yīng)的鏈接可以參考第頁(yè)下一篇文章我們將會(huì)介紹以太坊連載七客戶端的安裝與定制感謝朝夕團(tuán)隊(duì)參與的翻譯和校驗(yàn)。 一、選擇客戶端 為什么有多個(gè)以太坊客戶端? 以太坊客戶端與Java虛擬機(jī)和.NET運(yùn)行環(huán)境類似,能夠讓你在電腦上運(yùn)行以太坊程序。以太坊客戶端按照書(shū)面說(shuō)明(黃皮...
摘要:使用基于以太坊的智能合約的集成開(kāi)發(fā)環(huán)境。以太坊教程,主要介紹智能合約與應(yīng)用開(kāi)發(fā),適合入門。以太坊,主要是介紹使用進(jìn)行智能合約開(kāi)發(fā)交互,進(jìn)行賬號(hào)創(chuàng)建交易轉(zhuǎn)賬代幣開(kāi)發(fā)以及過(guò)濾器和事件等內(nèi)容。 Solidity是一種以智能合約為導(dǎo)向的編程語(yǔ)言。這是一種只有四年的年輕語(yǔ)言,旨在幫助開(kāi)發(fā)基于以太坊數(shù)字貨幣的智能合約。 理解它官方文檔應(yīng)該是學(xué)習(xí)Solidity的最佳來(lái)源:solidity.read...
摘要:郵件列表以太坊上的開(kāi)發(fā)者郵件列表停止使用。開(kāi)發(fā)的移動(dòng)以太坊瀏覽器開(kāi)發(fā)階段由支持的瀏覽器內(nèi)。是以太坊的開(kāi)發(fā)環(huán)境,測(cè)試框架和資產(chǎn)管道。審查隨機(jī)數(shù)以太坊虛擬機(jī)是以太坊智能合約的執(zhí)行環(huán)境。 去中心化應(yīng)用去中心化應(yīng)用是可以使用戶和供應(yīng)商之間直接互動(dòng)的服務(wù)(例如,連接某些市場(chǎng)上的買方和賣方,文件存儲(chǔ)里的持有者和儲(chǔ)存者)。以太坊去中心化應(yīng)用典型地通過(guò)HTML/Javascript網(wǎng)絡(luò)應(yīng)用與用戶互動(dòng),...
摘要:目前通常指代基于以太坊或者上的智能合約開(kāi)發(fā)的相關(guān)應(yīng)用。引入以太坊通過(guò)的交互流程大致如下總結(jié)隨著區(qū)塊鏈近些年的大紅大紫,被推上了風(fēng)口浪尖,本文從技術(shù)的角度大致介紹了一下所涉及的技術(shù)要點(diǎn)。 當(dāng)你開(kāi)始探索區(qū)塊鏈開(kāi)發(fā),需要了解到這些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...
閱讀 3079·2021-11-24 10:34
閱讀 3336·2021-11-22 13:53
閱讀 2639·2021-11-22 12:03
閱讀 3607·2021-09-26 09:47
閱讀 3014·2021-09-23 11:21
閱讀 4814·2021-09-22 15:08
閱讀 3302·2021-07-23 10:59
閱讀 1269·2019-08-29 18:31