Ⅰ 「官方」搭建Web3:Filecoin與以太坊攜手共進
這是Protocol Labs創始人Juan Benet在EthCC 2021上的演講概要,查看完整內容:
https://www.bilibili.com/video/BV1eb4y1r7E1
Filecoin網路是面向生態的,它與Protocol Labs搭建模塊化解決方案的傾向是一致的。因為它本來就是設計給其他人使用,所以Filecoin在Web3領域的其他棧、應用和生態里如魚得水。自從其在2020年10月的啟動開始,Filecoin已經增長到超過8 exbibytes的可用存儲空間,有超過400個項目進入了這個生態。以太坊就是一個能持續證明其可協作性和共同利益的生態系統。
Filecoin + 以太坊
>>>>Filecoin和以太坊虛擬機(EVM)
Filecoin生態意識到網路支持智能合約的好處。最初,開發者社區相信架設在以太坊和Filecoin之間的橋服務足夠在Filecoin上支持智能合約了。不過,通過橋來使用智能合約是很笨重的方式,相比於直接在以太坊實現智能合約的功能和可組合性更是不足。有一個提議是在Filecoin上加入以太坊虛擬機(EVM),從而在存儲層啟用對智能合約的支持,以及為這兩個生態的結合提供更多機會。
>>>>開發者工具和資源
Fleek:讓用戶能為去中心化網路架設網站、存儲和分發文件及開發dapp。Fleek可以讓每一個人(從專業的開發者到日常的互聯網用戶)更容易以去中心化的方式創建app和存儲文件,從而加速去中心化網路的採用率。Fleek可以在Filecoin上進行自動化存檔,並通過ENS(以太坊域名服務)這樣的應用來利用以太坊的生態系統。
https://fleek.co/
Web3.Storage:是一個讓開發者在Filecoin去中心化存儲網路上存取數據的簡單介面。Web3.Storage為開發者(包括以太坊dapp開發者)提供了搭建應用的簡單方式,這些應用可以帶有冗餘的去中心化的存儲以及安全的內容定址數據。
http://web3.storage/
PowerLoom:以去中心化的方式將鏈上和鏈下數據聚合起來以生成帶有密碼學證明的快照。它旨在通過一個豐富的節點和利益相關者生態系統(他們被激勵參與到協議里)來搭建信任,並按需提供洞見。PowerLoom特別適用於以太坊DeFi這樣的生態,這類系統是非常復雜的,而且需要基於驗證的信任。
https://powerloom.io/
>>>>DeFi應用
SecuredFinance(https://secured-finance.com/)是一個綜合平台,整合了基於智能合約的點對點固定利率貸款、抵押品管理服務、貨幣間交易和其他類型的利率產品。Secured Finance的協議是去中心化的點對點金融協議,提供了由以太坊智能合約賦能的區塊鏈上的中後台銀行業務。Secured Finance可以滿足Filecoin網路內的需求,它提供的解決方案能夠滿足Filecoin存儲提供者對FIL貸款的強烈需求。
>>>>數據市場
OceanProtocol(https://t.co/misApE3ggc?amp=1)是一個在Filecoin上搭建的數據市場。Ocean的數據token(data tokens)是以太坊ERC-20 token,可以輕易地用於發布和消費數據服務。如果你有1個數據token,你可以訪問一個特定的數據服務。Ocean market是一個專門為數據服務的去中心化交易所,它分叉了一個Balancer AMM(自動化做市商)來降低gas成本。在這個市場中,用戶可以對數據進行發布、購買、銷售、消費和stake操作。
通過Filecoin,用戶可以利用Ocean來發起自己的Filecoin數據市場,或創建一個Filecoin dataDAO或指數基金。通過Ocean Protocol的工具和Filecoin的去中心化存儲資料庫,我們正見證新生的開放數據經濟。
>>>>視頻應用
LivePeer:是一個去中心化的在線視頻流媒體基礎設施,由以太坊區塊鏈確保安全性。將Filecoin和IPFS結合提供存儲和內容分發功能後,去中心化視頻應用就成為可能了。
https://livepeer.org/
Voodfy:正為私有的視頻架設服務提供去中心化工具。這是一個多功能的安全流媒體解決方案,讓用戶能完全控制自己的內容,這包括了訪問權的設定以及變現的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.
https://voodfy.com/
VideoCoin:正搭建一個能可靠地創建、存儲和交易基於視頻的NFT解決方案,它可以繞過在以太坊上存儲實際內容時固有的復雜性和費用。VideoCoin正將其去中心化視頻處理網路與Filecoin整合起來,以搭建首個專門為創建和交易視頻NFT服務的平台。這個平台是新生的全球數字收藏品市場急需的一部分。
https://videocoin.io/
>>>>NFT
nft.storage(http://nft.storage/)是一個由Protocol Labs實驗室和Pinata支持的服務,它專門為存儲NFT數據而設計。
nft.storage讓開發者通過內容定址和去中心化存儲來保護其NFT資產和相關的元數據,確保所有的NFT遵循最佳實踐以實現長期的可訪問性。
未來的使用場景
隨著Filecoin和Ethereum生態系統的成長和重疊,會出現更多的新生用例和開發者機會。一些可以進行創新的用例包括:
>>>>可組合的DeFIL
將存儲和Defi的世界結合可以產生一些機會。人們可以將市場訂單(如要價、出價和交易)帶到一個去中心化交易所上,以觀察市場是如何評判這些訂單的價值的。通過這樣的能力,生態系統可以開始想像硬體期貨(hardware futures)和時空期貨(spacetime futures)等的出現。
>>>>數據豐富的NFT
NFT將會越來越復雜,而Web3社區需要 探索 採用數據豐富(data-rich)的NFT的方式。VideoCoin已經將其視頻處理引擎與Filecoin連接起來,以結合以太坊對NFT的支持能力及Filecoin的存儲能力。像VideoCoin這樣的工具可以用來創建一類新型的NFT,如短電影、視頻片段和完整長度的專題特寫。
>>>>按觀看次數支付的媒體
通過在Filecoin上存儲的信息,我們可以利用以太坊的token支持能力去創建由token保護的頁面和媒體(文章、電影和音樂等)。我們可以復制Web2時代的按觀看次數支付模式,而無需復制數據和廣告模型。
這只是一個開始!Filecoin和以太坊生態有長期的協作 歷史 和機會,未來可期。
Ⅱ web3.0鎬庝箞鍏ラ棬
web3.0鍏ラ棬鏂規硶鏄錛氫簡瑙e尯鍧楅摼鎶鏈銆佸︿範Solidity緙栫▼璇璦銆佸壋寤轟互澶鍧婇挶鍖呫佸弬涓庝互澶鍧婄綉緇溿佺爺絀禗App寮鍙戙
1銆佷簡瑙e尯鍧楅摼鎶鏈錛歐eb3.0鏄寤虹珛鍦ㄥ尯鍧楅摼鎶鏈涔嬩笂鐨勶紝鍥犳ら渶瑕佸厛浜嗚В鍖哄潡閾劇殑鍩烘湰鍘熺悊銆佸姞瀵嗙畻娉曞拰鏅鴻兘鍚堢害絳夋傚康銆
2銆佸︿範Solidity緙栫▼璇璦錛歋olidity鏄涓縐嶄笓闂ㄧ敤浜庣紪鍐欐櫤鑳藉悎綰︾殑緙栫▼璇璦錛屽畠鏄浠ュお鍧婂鉤鍙頒笂鐨勪富瑕佺紪紼嬭璦銆傚彲浠ラ氳繃鍦ㄧ嚎鏁欑▼銆佷功綾嶆垨鑰呭弬鍔犲煿璁鐝鏉ュ︿範Solidity緙栫▼璇璦銆
3銆佸壋寤轟互澶鍧婇挶鍖咃細浠ュお鍧婇挶鍖呮槸涓涓瀛樺偍鏁板瓧璐у竵鍜岀侀掗鐨勮蔣浠剁▼搴忥紝鐢ㄤ簬涓庝互澶鍧婄綉緇滀氦浜掋傚彲浠ヤ嬌鐢∕etaMask銆乀rust Wallet絳夊父瑙佺殑浠ュお鍧婇挶鍖呫
4銆佸弬涓庝互澶鍧婄綉緇滐細閫氳繃鎼寤轟釜浜鴻妭鐐規垨鑰呬嬌鐢ㄤ竴浜涚涓夋柟騫沖彴錛屽彲浠ュ弬涓庡埌浠ュお鍧婄綉緇滀腑銆傚彲浠ュ湪鏈鍦版祴璇曟櫤鑳藉悎綰﹀拰DApp銆
5銆佺爺絀禗App寮鍙戱細DApp鏄鍩轟簬鍖哄潡閾炬妧鏈鐨勫簲鐢ㄧ▼搴忥紝閫氬父鍖呮嫭鏅鴻兘鍚堢害鍜屽幓涓蹇冨寲鐨勫簲鐢ㄧ▼搴忋傚彲浠ラ氳繃闃呰葷浉鍏蟲枃妗c佸弬鍔犲紑鍙戣呯ぞ鍖虹瓑鏂瑰紡鏉ュ︿範鍜岀爺絀禗App寮鍙戙
Web3.0鐗硅壊錛
1銆佸幓涓蹇冨寲錛歐eb3.0鏄寤虹珛鍦ㄥ尯鍧楅摼鎶鏈涔嬩笂鐨勶紝鍏鋒湁鍘諱腑蹇冨寲鐨勭壒鐐廣傝繖鎰忓懗鐫鏁版嵁鍜屽簲鐢ㄧ▼搴忎笉鏄鐢卞崟涓鐨勪腑蹇冩帶鍒訛紝鑰屾槸鐢辯綉緇滀腑鐨勬墍鏈夎妭鐐瑰叡鍚岀淮鎶ゅ拰綆$悊銆
2銆佸畨鍏ㄦч珮錛歐eb3.0浣跨敤瀵嗙爜瀛︽妧鏈鍜屾櫤鑳藉悎綰︽潵紜淇濇暟鎹鐨勫畨鍏ㄦу拰闅愮佹с傝繖浣垮緱Web3.0鏇村姞瀹夊叏錛屽彲浠ユ湁鏁堝湴闃叉㈤粦瀹㈡敾鍑誨拰鏁版嵁娉勯湶絳夊畨鍏ㄩ棶棰樸
3銆佸彲鎵╁睍鎬у己錛歐eb3.0鍏鋒湁鍙鎵╁睍鎬э紝鍙浠ュ勭悊澶ч噺鐨勬暟鎹鍜屼氦鏄撱傝繖鏄鍥犱負Web3.0浣跨敤浜嗗垎甯冨紡緗戠粶鍜屽叡璇嗙畻娉曪紝鍙浠ュ悓鏃跺勭悊澶氫釜浜ゆ槗錛岃屼笉浼氬嚭鐜版嫢鍫靛拰寤惰繜絳夐棶棰樸
4銆侀忔槑搴﹂珮錛歐eb3.0浣跨敤鍖哄潡閾炬妧鏈鏉ヨ板綍鎵鏈夌殑浜ゆ槗鍜屾暟鎹錛岃繖浣垮緱鏁版嵁鐨勯忔槑搴﹂潪甯擱珮銆傝繖涔熶嬌寰梂eb3.0鏇村姞鍏姝e拰鍙淇★紝鍥犱負浠諱綍浜洪兘鍙浠ユ煡鐪嬪拰楠岃瘉榪欎簺鏁版嵁銆
Ⅲ 【ETH錢包開發03】web3j轉賬ETH
在之前的文章中,講解了創建、導出、導入錢包。
【ETH錢包開發01】創建、導出錢包
【ETH錢包開發02】導入錢包
本文主要講解以太坊轉賬相關的一些知識。交易分為ETH轉賬和ERC-20 Token轉賬,本篇先講一下ETH轉賬。
1、解鎖賬戶發起交易。錢包keyStore文件保存在geth節點上,用戶發起交易需要解鎖賬戶,適用於中心化的交易所。
2、錢包文件離線簽名發起交易。錢包keyStore文件保存在本地,用戶使用密碼+keystore的方式做離線交易簽名來發起交易,適用於dapp,比如錢包。
本文主要講一下第二種方式,也就是錢包離線簽名轉賬的方式。
交易流程
1、通過keystore載入轉賬所需的憑證Credentials
2、創建一筆交易RawTransaction
3、使用Credentials對象對交易簽名
4、發起交易
注意以下幾點:
1、Credentials
這里,我是通過獲取私鑰的方式來載入 Credentials
還有另外一種方式,通過密碼+錢包文件keystore方式來載入 Credentials
2、nonce
nonce是指發起交易的賬戶下的交易筆數,每一個賬戶nonce都是從0開始,當nonce為0的交易處理完之後,才會處理nonce為1的交易,並依次加1的交易才會被處理。
可以通過 eth_gettransactioncount 獲取nonce
3、gasPrice和gasLimit
交易手續費由gasPrice 和gasLimit來決定,實際花費的交易手續費是 gasUsed * gasPrice 。所有這兩個值你可以自定義,也可以使用系統參數獲取當前兩個值
關於 gas ,你可以參考我之前的一篇文章。
以太坊(ETH)GAS詳解
gasPrice和gasLimit影響的是轉賬的速度,如果gas過低,礦工會最後才打包你的交易。在app中,通常給定一個默認值,並且允許用戶自己選擇手續費。
如果不需要自定義的話,還有一種方式來獲取。獲取以太坊網路最新一筆交易的 gasPrice ,轉賬的話, gasLimit 一般設置為21000就可以了。
Web3j還提供另外一種簡單的方式來轉賬以太幣,這種方式的好處是不需要管理nonce,不需要設置gasPrice和gasLimit,會自動獲取最新一筆交易的gasPrice,gasLimit 為21000(轉賬一般設置成這個值就夠用了)。
這個問題,我想是很多朋友所關心的吧。但是到目前為止,我還沒有看到有講解這方面的博客。
之前問過一些朋友,他們說可以通過區塊號、區塊哈希來判斷,也可以通過Receipt日誌來判斷。但是經過我的一番嘗試,只有 BlockHash 是可行的,在web3j中根據 blocknumber 和 transactionReceipt 都會報空指針異常。
原因大致是這樣的:在發起一筆交易之後,會返回 txHash ,然後我們可以根據這個 txHash 去查詢這筆交易相關的信息。但是剛發起交易的時候,由於手續費問題或者乙太網絡擁堵問題,會導致你的這筆交易還沒有被礦工打包進區塊,因此一開始是查不到的,通常需要幾十秒甚至更長的時間才能獲取到結果。我目前的解決方案是輪詢的去刷 BlockHash ,一開始的時候 BlockHash 的值為0x00000000000,等到打包成功的時候就不再是0了。
這里我使用的是rxjava的方式去輪詢刷的,5s刷新一次。
正常情況下,幾十秒內就可以獲取到區塊信息了。
區塊確認數=當前區塊高度-交易被打包時的區塊高度。
Ⅳ 以太坊如何使用web3.js或者rpc介面獲取交易數據交易時間與確認數
如果要查詢主網上的交易記錄,可以使用etherscan。但是,如果是你自己搭建的私鏈,應該如何查詢交易記錄呢?
答案是你需要自己監聽鏈上的日誌,存到資料庫里,然後在這個資料庫中查詢。例如:
varaddr=""
varfilter=web3.eth.filter({fromBlock:0,toBlock:'latest',address:addr});
filter.get(function(err,transactions){
transactions.forEach(function(tx){
vartxInfo=web3.eth.getTransaction(tx.transactionHash);
//這時可以將交易信息txInfo存入資料庫
});
});
web3.eth.filter()用來監聽鏈上的日誌,web3.eth.getTransaction()用來提取指定交易的信息,一旦獲得交易信息,就可以存入資料庫供查詢用了。
推薦一個實戰入門,你可以看看:以太坊教程