❶ 以太坊開發是不是很牛嗎
盛世華彩公司在以太坊開發這個方面就做的很好。
❷ 以太坊是一個什麼樣的東西怎麼開發
以太坊是一種區塊鏈的實現。在以太坊網路中,眾多的節點彼此連接,構成了以太坊網路: 以太坊節點軟體提供兩個核心功能:數據存儲、合約代碼執行。在每個以太坊全節點中,都保存有完整的區塊鏈數據。以太坊不僅將交易數據保存在鏈上,編譯後 的合約代碼同樣也保存在鏈上。以太坊全節點中,同時還提供了一個虛擬機來執行合約代碼。以太坊虛擬機 以太坊區塊鏈不僅存儲數據和代碼,每個節點中還包含一個虛擬機(EVM:Ethereum Virtual Machine)來執行 合約代碼 —— 聽起來就像計算機操作系統。事實上,這一點是以太坊區別於比特幣(Bitcoin)的最核心的一點:虛擬機的存在使區塊鏈邁入了2.0 時代,也讓區塊鏈第一次成為應用開發者友好的平台。以上內容來自:以太坊DApp開發入門教程
❸ 國內eth十大礦池排名
1、 以太坊
它是全球領先的比特幣數據服務提供商和礦池和錢包解決方案提供商。從2015年開始,團隊從區塊瀏覽器等行業基礎設施入手,致力於構建各個子領域的新標准。品牌可以在錢包、礦池、行情、資訊等領域看到。
2、F2Pool
F2Pool 是中國最大的比特幣和萊特幣挖礦系統礦池之一。數據顯示,魚池目前是全球第二大礦池,僅次於螞蟻礦池。
3、錢印
碧音成立於2017年11月,由原核心團隊打造。團隊的產品和技術輸出現在服務於全網大部分比特幣算力;兩年內打造了多個產品,跨越區塊鏈瀏覽器、礦池、錢包等多個垂直領域。碧音礦池是一個專業的礦池,支持所有主流幣種的挖礦。目前支持的幣種包括:BTC、BCH、BSV、ZEC、LTC、ETH、DCR、DASH、XMR。
4、火幣礦池
火幣礦池是全球首個集數字資產挖掘與交易於一體的礦池平台。它採用基於POW挖礦機制的全新分配模型FPPS。市場上大部分礦池採用傳統的PPS結算和分配模式。相比之下,火幣的FPPS模式降低了礦工的打包費,每個礦工可以增加5%左右的利潤。火幣礦池通過這一舉措,將其與其他礦池區分開來,吸引礦工入駐。
5、螞蟻礦池
螞蟻礦池是BitTaiwan利用大量資源開發的高效數字貨幣礦池。致力於為礦工提供更友好的界面、更完善的功能、更多的使用方面、更豐厚透明的收益。貨幣的發展做出更多貢獻。螞蟻礦池是一個高效的數字貨幣礦池,致力於為礦工提供更友好的界面、更好的功能、更便捷的使用和更豐厚透明的收益。螞蟻礦池為多種數字貨幣提供比特幣、萊特幣、以太坊挖礦服務,支持PPS、PPLNS、SOLO等多種支付方式。
6、微比特
微比特是一家專業的數字貨幣技術服務商。其服務范圍包括數字貨幣交易平台、數字貨幣礦池、雲挖礦合約。成立於2016年5月,同年6月上線比特幣礦池,11月上線雲挖礦產品。 2017年3月,微比特獲得由BitTaiwan領投的2000萬元A輪融資,以拓展交易所業務。 6月,微比特即將上線數字貨幣交易平台。
7、58COIN&1THash
58COIN&1THash 是 58COIN 下的業務。 58COIN依靠礦池構建比特算力。這是58COIN與礦機廠商、礦池、礦主共同准備的一項新業務。用戶只需支付礦機費、電費、管理費即可享受穩定的挖礦服務。用戶可以隨時在後台查看。目前業務為礦機銷售及託管、礦機租賃及標准雲算力服務。
8、Binance 礦池
目前礦池格局主要分為三類。第一類是比特幣POW礦池,包括礦池、印幣、比特大陸旗下的螞蟻礦池;第二類是其他礦池,如以太坊礦池、Spark礦池;第三類是交易所礦池,如火幣礦池、OK礦池、幣安礦池。幣安作為新世界的「數字經濟操作系統」,在數字資產交易流通領域,在區塊鏈市場教育領域,在去中心化流通探索領域,資產流通平台在雲計算領域,在市場和數字資產大數據領域,在金融衍生品領域,等生態系統,都取得了很好的成績,也創造了全球影響力。當然,對於區塊鏈和數字經濟領域的實體經濟,「雲算力平台」,即礦池,幣安也在極短的時間內創造了另一種「商業內涵」。
9、OKEXPool
在公布的數據中,OKExPool從2019年10月的市場份額約0%迅速發展為市場份額第六大的礦池。但是,在算力趨勢曲線上,OKExPool在2020年1月算力出現大幅下滑。有市場人士對PANews表示,推測OKExPool算力快速下滑的原因可能是加入了更加中心化的小礦場,目前還缺乏投資者加入算力結構。
雖然交易所普遍是礦池領域的新人,但交易所持有的礦池業務相對於傳統公司仍有一定的天然優勢。
10、BTC.TOP
Lybit礦池經過多年的穩定運行,最初是一個全網算力最大的私有礦池。現面向市場以太幣,誠邀所有礦工分享其技術帶來的挖礦收益。全新升級改版的樂比特礦池系統更加貼合客戶需求,內容更豐富,操作更簡單。
❹ 以太坊挖礦,哪個礦池挖礦收益高
各個礦池的收益都是波動變化的,沒有收益一直最高的礦池.
想要獲取最高收益,最好的話還是找個良心的挖礦軟體,挖礦行業這么久了,這方面的服務也挺完善的.
❺ 區塊鏈和智能合約,以太坊開發,183位開發者整理,知識體系匯總
在以太坊上開發應用程序的可用工具、組件、模式和平台的指南。
此列表的創建是由 ConsenSys 的產品經理推動的,他們認為需要在新的和有經驗的區塊鏈開發人員之間更好地共享工具、開發模式和組件。
開發智能合約
智能合約語言
構架
IDE
其他工具
測試區塊鏈網路
測試以太水龍頭
前端以太坊 API
後端以太坊 API
引導程序/開箱即用工具
以太坊 ABI(應用程序二進制介面)工具
以太坊客戶端
貯存
Mahuta - 具有附加搜索功能的 IPFS 存儲服務,以前稱為 IPFS-Store
OrbitDB - IPFS 之上的去中心化資料庫
JS IPFS API - IPFS HTTP API 的客戶端庫,用 JavaScript 實現
TEMPORAL - 易於使用的 API 到 IPFS 和其他分布式/去中心化存儲協議
PINATA - 使用 IPFS 的最簡單方法
消息傳遞
測試工具
安全工具
監控
其他雜項工具
Cheshire - CryptoKitties API 和智能合約的本地沙箱實現,可作為 Truffle Box 使用
ERCs-以太坊評論請求存儲庫
ERC-20 - 可替代資產的原始令牌合約
ERC-721 - 不可替代資產的令牌標准
ERC-777 - 可替代資產的改進令牌標准
ERC-918 - 可開采令牌標准
流行的智能合約庫
可擴展性
支付/狀態通道
等離子體
側鏈
POA橋
POA 橋用戶界面
POA 橋梁合同
ZK-SNARK
ZK-STARK
預構建的 UI 組件
以上內容,來自git庫:
github.com/ConsenSys/ethereum-developer-tools-list
我是魚歌,一個在深圳創業的全棧程序員,主攻區塊鏈,元宇宙和智能合約,附加小程序和app開發。
[祈禱]
❻ 以太坊開發哪裡做的好啊
雲豹科技的區塊鏈游戲部署在以太坊區塊鏈,使用虛擬幣進行系統內的相關交易,讓玩家在交易方面的難度降低了不少
❼ 目前國內有哪些好的區塊鏈應用開發平台
之前每每提到去中心化應用平台,我們總會想到國外區塊鏈解決方案,但是今天再談到這個話題更多的我們想到自己國內的Laikelib。上海和數軟體旗下和數Laikelib區塊鏈技術底層架構是一個去中心化的區塊鏈應用開發平台,目的是幫助開發者快速創建去中心化應用。Laikelib具有易用靈活、便捷安全等特點。從模式上來說,它跟以太坊類似都屬於區塊鏈底層技術架構服務,但實現機制還是略有不同,這一點可以在和數區塊鏈技術官網上了解。
❽ 以太坊落地應用有哪些
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系統一樣,它能提供一套專門的腳步語言,讓大家可以隨意地在上面開發。
❾ 盤點2020年下半年最值得關注的十大項目
lishuchen • 2020年8月7日 am11:07 • 研究 • 閱讀 180
2020年上半年有兩種項目:一種是跟DeFi相關的,另外一種是其他項目。
不少DeFi項目都出現了讓人拍斷大腿的行情,漲幅少則幾倍,多則百倍千倍。
Uniswap、跨鏈、雲存儲、ETH2.0等各種熱點層出不窮,2020年下半年是熱點高度集中爆發的時期,我們能否從中找到機會?
「 Filecoin(雲存儲賽道) 」
Filecoin是IPFS協議的存儲層和激勵層。IPFS是一種點對點的分布式文件系統,被大家稱為下一代去中心化互聯網底層協議。
2017年的7-9月份Filecoin通過ICO的形式募資(公募和私募)了2.57億美金,紅杉資本等頂級投資機構參投。項目發展一波三折,經過了數次跳票,主網即將上線。
如果沒有意外,Filecoin主網將會在8月31號至9月21號這個時間區間上線,礦工可以通過提供存儲空間,以有效存儲作為算力,參與網路治理,競爭區塊打包權獲取代幣獎勵。
8月12日,Filecoin將開啟全球礦工大賽,此次競賽將有超過400萬FIL的獎勵分發,按照目前期貨價格來算,高達1.8億美金。
作為既有區塊鏈技術能力,又有落地應用,同時又被市場熱捧的項目,Filecoin無疑是2020年最大的機會。
當然在Filecoin這條賽道上,陷阱和機會一樣多。
參破Filecoin投資,從中找到機會。
除了Filecoin以外,Filecoin主網的上線可能也會帶起雲儲存賽道的熱度,和雲存儲概念相關的項目或許會出現上漲。
「 波卡(跨鏈賽道) 」
波卡是由以太坊前首席開發官Gavin Wood提出的多鏈交互架構,主要解決的是鏈間信息孤島的問題,並提供跨鏈的基礎設施,並使鏈與鏈之間能夠以安全和去信任的方式進行信息交流。總而言之,波卡是一種網路協議,允許任意數據通過區塊鏈傳輸。
和Filecoin一樣,波卡也出現了延期,項目原本計劃於2019年上線,在主網上線之前團隊先推出了未經代碼審計的波卡姊妹鏈Kusama,讓開發人員在上面進行各種實驗。之前波卡重點的進展主要是在生態發展和項目推廣上,在全球各地舉辦Meetup(討論會議)。今年上半年通過了代碼審計,主網也在大家的等待中上線了。
波卡項目具有很大的創新性,有以下這些特性:
波卡的特性
波卡近期上線了火幣、OKEx等主流交易所,又在7月24號進行30.2萬個DOT的眾籌。目前全功能主網上線的六大階段(PoA、NPoS、治理、移除Sudo、支持余額轉移和核心功能)已經進行到治理階段。
接下來會由公眾投票發起的運行時升級將Sudo從波卡中移除,網路便由代幣持有者掌控。
此外,波卡8月18日將開啟轉賬功能,這距離全功能主網又邁進了一步。波卡後續會進行平行鏈插槽的拍賣,拍賣完成後很多平行鏈將通過插槽連接到波卡上。
波卡主網的上線,是區塊鏈發展的一個重要里程碑。跨鏈協議將為更多的項目帶來新的拓展方式,也能夠和其他項目的信息進行交換,使智能合約跨鏈調用成為可能。 對項目來說是個重大的利好,將會帶來一個通過鏈間消息傳遞進行交互的豐富的區塊鏈生態系統。
一鍵發鏈的模式,讓構建公鏈不再變得那麼困難,因此我們也可以想像得到,這將比以太坊一鍵發幣更有創新性,能夠解決更多的應用場景問題。
波卡後續的機會還很多,除了波卡項目本身外,還可以在波卡平行鏈生態找到機會,比如現有的ChainX、Edgeware等等,後續還可以參與到波卡的新平行鏈。
「 Cosmos(跨鏈賽道) 」
Cosmos是Tendermint團隊推出的一個並行網路,使用Cosmos可以使各個區塊鏈完成交易互通。Cosmos和波卡一起並稱為「跨鏈雙雄」,主網在2019年3月份成功上線。
Cosmos在6月份進行了挑戰激勵網的活動,為後續跨鏈協議的實際應用打好基礎。又在7月份開啟了星際之門的更新,項目也迎來了利好。
Cosmos一直在開發IBC 1.0協議,之前團隊內部的問題在2月份爆發後,項目創始人離開了Cosmos創辦新項目,因為不是項目核心成員,所以對整個項目影響不大。經過後續的重組,團隊沒有內耗的情況,IBC 1.0協議的開發速度也加快了。
Cosmos IBC 1.0開發進度
Cosmos的核心跨鏈協議 IBC 1.0即將上線,目前IBC 1.0的開發已經完成82%。 IBC 1.0的完成將真正使Cosmos的中心和分區連接起來,在鏈間信息傳遞技術上有所突破。
IBC 1.0是Cosmos最核心的開發點,目前Cosmos的分區和中心因為跨鏈協議還未完成,只能夠獨立運行。很多項目的發展都受限於IBC 1.0,跨鏈協議未完成,像Cosmos上的資產跨鏈項目IRIS就無法解決後續的進展。
「 Waves(公鏈賽道) 」
Waves是一個可定製代幣的,十分易用的區塊鏈平台。用戶在申請Waves賬號後,可以非常方便地完成發行代幣和上市工作。
Waves在過去開放了Waves協會,為整個生態提供有效的治理。2020年還將推出一種可以將任意區塊鏈與外界連接的數據協議,未來將在生態中應用。
Waves正在構建的鏈間DeFi
Waves正在構建鏈間DeFi。它能夠使DeFi產品在所有鏈上訪問,並通過多元化的資產組合來保護DeFi產品。 Waves推出的第一個鏈間DeFi產品將是Neutrino,可移植到不同的鏈上。Waves也正在實施下一步計劃,制定Waves 2.0願景。
Neutrino Dollar是一種演算法穩定幣,與美元掛鉤,並由Waves的PoS網路所支持。所有Neutrino代幣都保存在智能合約中,用戶可以隨時將其WAVES發送到智能合約並將其換成Neutrino。
「 Enjin( 游戲 賽道) 」
Enjin是創立於2009年的在線 游戲 創作平台,直到2017才成立Enjin Coin,開始設計並創建一個可用於交易、管理和分發虛擬商品的數字平台,解決傳統 游戲 平台中心化、資金不透明和各種 游戲 代幣不統一等問題。
Enjin被大家所熟知的除了 游戲 還有就是通過ERC-1155鑄造的各種NFT。
用ERC-1155鑄造的NFT
NFT是一種非同質代幣,簡單來說就是兩個代幣是獨立存在,並有所不同,比如2017年很火的各種不同形狀和屬性的每隻加密貓就是一個NFT。
但是以ERC-721為代表的加密貓市場使用率過低,而以Enjin ERC-1155為代表的NFT在逐步開拓市場,越來越多的項目方選擇使用ERC-1155發行NFT。
ERC-1155類型的NFT可以批量進行操作,在鑄造完成之後還可以進行銷毀,取回Enjin代幣。
目前NFT市場還未真正爆發,幣安近期的IEO也推出跟NFT概念相關的項目,Enjin又是屬於NFT領域中的龍頭,所以很很多的機會。
目前全球 游戲 市場的收入每年都在快速增長,據專業數據分析,現在 游戲 市場的收入已經超過1500億美金。而區塊鏈 游戲 這條賽道卻還未爆發,Enjin在全球擁有2000萬的用戶、 游戲 的生態內容也在穩定發展,為開發者提供的開發工具也已經完善,所以Enjin在NFT市場爆發後的表現將會很有想像空間。
「 Nexus Mutual(DeFi衍生品) 」
Nexus Mutual是以太坊互助保險,通過全權委託來共同分擔風險。 和我們目前使用的支付寶「互相寶」有點類似,將用戶的保費集中放在資金池裡,遇到理賠時,審核通過後用戶將可以從資金池中獲得一定的賠償金。
7月份Nexus Mutual引入Pooled Staking,這是上線以來最大一次升級,重新設計質押系統。此次的升級,將減少了使用者質押代幣的學習成本,鼓勵用戶加大質押NXM,提高風險評估員的收益和使用更公平的分配方式,縮短NXM質押的鎖定期限。
Nexus Mutual 購買保險界面
任何人可以質押NXM成為風險評估員,風險評估員可以評估某個智能合約安全性,可以利用NXM保證金同時質押多個智能合約並從中收取質押合約的獎勵。
作為當前DeFi保險的頭部項目,Nexus Mutual主要是為DeFi協議提供投保服務,特別是因為近期的YFI系的流動性挖礦,受到了國內投資者的熱捧。
近期的升級刺激風險評估員提高了NXM質押率,用戶的智能合約寫入的保單越多,也越能夠為用戶提供更好的保護。
「 Zcoin(匿名賽道) 」
Zcoin是使用零知識證明,採用熔鑄和取回的方式隱藏交易者之間聯系的匿名幣。項目上線於2016年,代幣的總供應量2140萬,產出和減半周期與比特幣一樣為4年。使用了MTP (梅克爾樹證明演算法)來均衡礦工算力。
Zcoin在上半年最主要的工作是進行Lelantus協議的開發,推出去中心化的項目眾籌系統來籌集資金開發Zcoin的一些應用。 目前還在討論是否要改變Zcoin共識機制的問題,官方近期在推特發起投票想更改Zcoin的名字,目前有超50%以上的推友表示支持。
減半前與減半後XZC挖礦代幣分配詳情
Zcoin採用的是PoW+PoS機制,將在今年9月份進行減半。減半後每個區塊獎勵將由25個XZC減少為12.5個XZC。
Zcoin在區塊獎勵分配時主要考慮了: 為開發和研究提供可持續資金,通過礦工和Znodes節點確保社區的持續增長。 除了減少項目代幣的流通量外,還將對項目開發進展有積極作用和讓更多的用戶參與到Znodes節點的建設,維護Zcoin區塊鏈安全運行。
Lelantus協議與其他協議技術對比
Zcoin的Lelantus協議即將上線。 從上表中也可以看出,Zcoin從最初始協議到最終協議,它的匿名技術和性能一直在改進。
Lelantus將提供更強的匿名性,除了證明尺寸外,批量驗證還可以有效降低驗證時間。
Lelantus在所有維度中表現都很好:提供高度匿名性,良好性能和很小的證明尺寸,依賴於成熟密碼學。因此Lelantus的成功上線對項目來說將是個很大的進展。
據Zcoin的官方人員透露,Lelantus最遲於9月份部署完成。但可能由於今年疫情影響,項目進展會有所延期。對於投資者來說,提前知道項目重大進展提前布局是一個不錯的選擇。
「 Curve Finance(DeFi賽道,未上線) 」
DeFi Pulse上Curve Finance的鎖倉狀況
DeFi穩定幣交易平台Curve Finance目前的鎖倉已經高達2.188億美金,僅排在Maker、Compound、Synthetix、Aave、Balancer和InstaDApp後面,呈穩定增長的趨勢。流動性挖礦給其他DeFi項目帶來了爆炸性增長,像Compound就主導了整個市場,Curve只能零散的瓜分一小塊份額。
CRV的總量隨時間的增長情況
Curve將發行代幣,發起流動性挖礦,爭奪市場份額。不過,目前挖礦方式尚未確定,代幣發行時間和售價也暫未確定,或於近期舉行。
通過Curve Github的資料顯示,CRV是一種通脹型代幣,總供應量為10億,第一年通脹率最高,最後代幣會增長到33.3億。
Curve.finance創始人Michael Egorov表示:CRV將是治理型代幣,投票時需要進行鎖定。代幣不僅可用於流動性挖礦,也可以用於激勵Curve DAO(去中心化自治組織)認可的任何有益於生態的行為。
「 NEAR(公鏈賽道,未上線) 」
NEAR是做分片技術比較有名的公鏈,分片解決方案稱為夜影協議(Night Shade),但是NEAR不是分片鏈的結構,並不是採用波卡和Cosmos那種模式。NEAR的分片技術解決了拓展性問題,未來在Dapp和DeFi領域將有所作為。
Near公布了經濟模型,初始發行量10億,通脹率5%。近期也和Chainlink合作,為NEAR開發者提供去中心化的預言機服務。
NEAR與幾大公鏈延展性和靈活性對比
NEAR是分片賽道的項目,目前PoA主網已經上線,將於8月份募資,目前暫未得知具體信息。主要的機會在於以太坊2.0 2-3年的空窗期,以太坊2.0將在2020年底開啟「0階段」,在2021年開啟「1階段」,在2023年開啟「2階段」,進程十分緩慢。
因此NEAR可以利用自身結構上的優勢,降低以太坊開發者的門檻,讓開發者選擇在NEAR上進行Dapp部署。可以在以太坊2.0出來之前,搶占市場,生態做的好的話,在公鏈賽道里還能夠有一席之地。
「 SKALE(公鏈賽道,未上線) 」
SKALE是Layer2網路的明星項目,新一代的測鏈主打項目。
項目由SKALE實驗室創建,願景是推動去中心化的Layer 2擴展網路,並且兼容以太坊Layer 1鏈上運行的Dapp,以高速和低成本在安全去中心化的的layer 2中運行智能合約。SKALE目前生態上有幾十個Dapp,最主要的是DeFi和 游戲 這方面的Dapp。在Loom Network不再強調對 游戲 支持後,很多Dapp 游戲 會遷移到SKALE上面。
8月17號將進行荷蘭式拍賣,項目在此之前已經融資1710萬美金。
目前如此火熱的DeFi項目每次操作都會受限於以太坊的性能和高手續費的問題,而SKALE這個項目卻是這些問題的解葯。SKALE可以以低成本
❿ 以太坊是什麼丨以太坊開發入門指南
以太坊是什麼丨以太坊開發入門指南
很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基於以太坊平台,以通俗的方式介紹以太坊開發中涉及的各晦澀的概念,輕松帶大家入門。
以太坊是什麼
以太坊(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來搭建一個測試網路。
註:本文中為了方便大家理解,對一些概念做了類比,有些嚴格來不是准確,不過我也認為對於初學者,也沒有必要把每一個概念掌握的很細致和准確,學習是一個逐步深入的過程,很多時候我們會發現,過一段後,我們會對同一個東西有不一樣的理解。