比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > 波場 > Info

PRO:精通IPFS:系統啟動篇_PAPI

Author:

Time:1900/1/1 0:00:00

當用戶以守護進程模式啟動filecoin時,最終執行的命令位于

commands/daemon.go文件,它的

Run方法直接調用同文件中的

daemonRun函數進行處理。這個函數的處理如下:

調用getRepo,獲得本地倉庫repo.Repo接口對象。這個方法內部調用倉庫的OpenFSRepo函數,生成并初始化倉庫對象,它的流程如下:

根據倉庫路徑和版本,生成倉庫repo.FSRepo對象。

鎖定相關倉庫的repo.lock文件,并設置倉庫對象的lockfile屬性,從而確保同時只有一個全節點可以使用倉庫,以便維護倉庫的完整性。

調用倉庫對象的loadFromDisk方法,從磁盤上加載倉庫的各種數據,并同繼續完善倉庫對象。這個方法的流程如下:

調用倉庫對象的readVersion方法,從倉庫文件中讀取倉庫的版本號,并與倉庫對象自身的版本號進行比較。如果不匹配,則拋出錯誤。

調用倉庫對象的loadConfig方法,加載倉庫的配置文件config.json。

調用倉庫對象的openDatastore方法,加載倉庫的數據存儲文件。默認情況下,數據存儲類型為badgerds,所以加載的文件目錄為倉庫下的這個目錄。這個方法會生成倉庫存儲對象,并保存在倉庫對象的ds屬性。

調用倉庫對象的openKeystore方法,打開倉庫的keystore文件。這個方法會生成私鑰存儲對象,并保存在倉庫對象的keystore屬性。

借貸協議Hover與Pyth Network建立合作,為其借貸市場提供預言機支持:據官方消息,Kava原生借貸協議Hover宣布與Pyth Network建立合作伙伴關系,Hover將在其流動性市場使用Pyth提供鏈上預言機定價。

Hover核心貢獻者Aileen Dauz表示,“對于Hover來說,獲得可靠的數據源對于管理穩定的市場至關重要。Pyth團隊提供的實時、按需市場數據來自可信的來源,使他們成為我們首選的Oracle解決方案。我們對此次合作以及它為Hover和整個Kava生態系統帶來的影響感到非常興奮。”Pyth的貢獻者之一Marc Tillement表示,“Pyth已準備好全力支持Hover,為其提供250多種不同的價格喂價。”[2023/7/20 11:06:46]

調用倉庫對象的openWalletDatastore方法,打開錢包數據存儲。這個方法會生成倉庫存儲對象,并保存在倉庫對象的walletDs屬性。這次對象對應的目錄為wallet。

調用倉庫對象的openChainDatastore方法,打開區塊鏈數據存儲。這個方法會生成倉庫存儲對象,并保存在倉庫對象的chainDs屬性。這次對象對應的目錄為chain。

調用倉庫對象的openDealsDatastore方法,打開交易數據存儲。

這個方法會生成倉庫存儲對象,并保存在倉庫對象的dealsDs屬性。這次對象對應的目錄為deals。

獲取環境變量。

獲取命令行參數。

Tykhe Block Ventures旗下區塊鏈增長基金完成3000萬美元募資:金色財經報道,風險投資公司 Tykhe Block Ventures 宣布旗下區塊鏈增長基金(Blockchain Growth Fund)完成首次 3000 萬美元募資,來自東南亞和中東的超高凈值人士和家族辦公室領投,Prashant 和其他投資伙伴向該基金投入了 500 萬美元。據悉,該基金將利用這筆資金投資中東地區的區塊鏈和 Web3 初創公司,并在迪拜設立辦事處,其目標是在 2023 年底之前將基金規模擴大到 1 億美元。Tykhe Block Ventures 的投資組合包括去中心化內容共享平臺 Creaton 、NFT 永續合約交易平臺 nftperp 等。(thecryptoupdates)[2023/1/27 11:31:31]

調用節點的New方法,創建一個節點。首先,生成一個配置對象,使用前面幾步形成的選項參數和倉庫對象來設置配置對象;然后調用配置對象的Build方法,構建一個Filecoin節點。當我們不帶參數啟動時,配置對象中只有倉庫對象會被設置。Build函數執行流程如下:

如果配置對象中沒有倉庫對象,則生成一個內存版倉庫對象。

生成區塊存儲對象。?

'調用配置對象的buildHost方法,生成libp2pHost對象'。buildHost方法調用libp2p的New方法,這個方法最終調用config/config.go中定義的NewNode方法,這個方法:

首先,調用swarm的NewSwarm方法創建一個swarm對象。

被標記為 Alameda Research 地址出售約 72 萬枚 LDO:12月28日消息,被 Etherscan 標記為 Alameda Research 的地址出售了 719,498 枚 LDO 并獲得了 601 枚以太坊,出售均價為 0.9972 美元。目前 Alameda 仍持有 186 萬枚 LDO,價值約 181 萬美元。[2022/12/28 22:12:20]

然后,調用basic_host.go中定義的NewHost來創建host對象。在創建host對象過程中,把swarm對象保存為host對象的網絡對象,同時設置swarm的連接處理器和流處理器分別為host對象的newConnHandler和newStreamHandler兩個方法。

然后,調用swarm的AddTransport方法,添加指定的傳輸協義。

最后,調用host的Listen方法,開始監聽指定的地址。

生成pinger服務對象。

生成區塊驗證器consensus.DefaultBlockValidator對象。

使用libp2pHost對象和路由對象,生成bitswap網絡對象。

使用bitswap網絡對象和區塊存儲對象,生成bitswap對象。

使用區塊存儲對象和bitswap對象,生成區塊服務對象。

生成獲取區塊net.Fetcher對象,以便從遠程節點獲取數據。

''調用readGenesisCid函數,獲取創世區塊的CID''。

薩爾瓦多的銀行平臺Galoy推出由比特幣支持的合成美元:金色財經報道,支持薩爾瓦多比特幣錢包的開源金融技術Galoy推出了Stablesats。此外,它宣布已成功籌集400萬美元資金,以支持其 GaloyMoney 比特幣銀行平臺的持續發展。通過利用衍生品合約來生產由比特幣支持并與美元掛鉤的合成美元,Stablesats尋求為目前的穩定幣網絡和常規銀行整合提供替代方案。[2022/8/3 2:56:54]

生成chain.Store對象。

生成chain.ChainStateProvider對象。

生成powerTable對象,類型為consensus.MarketView對象。

根據配置對象是否有獎勵,調用不同的方法節點共識器。如果獎勵對象為空,則調用consensus/processor.go的NewDefaultProcessor函數,生成共識器;否則,調用NewConfiguredProcessor函數,生成共識器。兩個函數都生成consensus.DefaultProcessor對象,區塊在于它們的屬性。

調用consensus/NewExpected.go的NewExpected函數,生成consensus.Protocol接口節點共識consensus.Expected對象。根據配置對象是否有proofs.Verifier接口對象,在生成過程中會使用不同的參數。

調用go-libp2p-pubsub類庫的NewFloodSub函數,生成一個發布/訂閱pubsub.PubSub對象fsub,監聽自身的所有消息。

亞馬遜副總裁:更關注開發影響現實世界的技術,而不是所謂的元宇宙:金色財經報道,在《華爾街日報》(The Wall Street Journal)舉辦的“萬物未來節”(Future of Everything Festival)會議上,亞馬遜高級副總裁David Limp表示,亞馬遜當前致力于拓展旗下各種設備的能力,比如家用機器人和環境計算,亞馬遜公司更多地關注開發能影響現實世界的技術,而不是所謂的元宇宙。David Limp 解釋說:“我確實發自內心地認為,我們希望改善當下的現實體驗,我覺得這也是亞馬遜公司為之投入大量時間的方面。我想試著開發出能讓人們不再沉迷數字設備的技術,讓人們享受現實世界。”[2022/5/21 3:32:21]

使用倉庫repo.Repo接口對象的walletDs屬性作為錢包后端,生成錢包wallet.Wallet對象。

調用chain/syncer.go的NewSyncer函數,生成區塊鏈chain.Syncer同步對象。

生成core.MessagePool對象。

生成core.Inbox對象。

生成core.MessageQueue對象。

生成node.defaultMessagePublisher對象。消息發布對象綁定的主題為/fil/msgs/devnet-3,它會在這個主題上發布消息。在全節點的啟動方法中通過,通過調用porcelain.API對象的PubSubSubscribe方法,訂閱這個主題的消息通知。

生成core.Outbox對象。這個對象上一步創建的消息發布對象,當調用porcelain.API對象的MessageSend方法發送消息時,內部調用本對象的Send方法,進行發送。發送方法最終調用消息發布對象的Publish,把經過簽名之后的消息發布到相應的主題上。當消息發送之后,別的全節點對象因為訂閱了消息主題,所以會調用全節點的processMessage的方法進行處理。具體見全節點啟動過程。

'生成PorcelainAPI對象。

'生成Filecoinnode.Node全節點對象。

'生成net.Bootstrapper引導對象。

返回Filecoin全節點對象。

調用內部函數runAPIAndWait,啟動全節點。

''調用節點的Start方法,啟動Filecon節點''。

調用chain.Store對象的Load方法,加載本地已有區塊。

調用全節點對象的miningAddress方法,獲取礦工地址;如果配置了礦工地址,則調用node.Node全節點對象的setupMining方法,設置挖礦。這個方法調用initSectorBuilderForNode函數,初始化初始化扇區生成器,并保存在全節點對象的sectorBuilder屬性上。

生成syncCallBack同步回調函數對象,用于處理區塊同步。

調用protocol/hello/hello.go文件的New函數,進行Hello消息處理設置這個方法內部處理如下:

生成一個hello協義處理器對象,并設置為全節點對象的HelloSvc屬性。

設置libp2p/fil/hello/1.0.0協義處理器為protocol.hello.Handler對象的handleNewStream方法。

設置libp2p網絡對象的連接通知為protocol.hello.helloNotify對象。

調用Filecoin節點的setupProtocols方法,設置各種協義。這個方法內部處理如下:

生成protocol.block.MiningAPI對象,并保存為全節點對象的BlockMiningAPI屬性。

調用protocol/retrieval/api.go文件的NewAPI函數,生成protocol.retrieval.API對象,并促為全節點對象的RetrievalAPI屬性。

調用protocol/storage/api.go文件的NewAPI函數,生成protocol.storage.API對象,并促為全節點對象的StorageAPI屬性。

以全節點對象為參數,調用protocol/retrieval/NewMiner.go的NewMiner函數,生成一個檢索礦工,并為設置全節點對象的RetrievalMiner屬性。這個函數首先生成一個檢索礦工,然后調用全節點對象的libp2pHost對象的SetStreamHandler方法,設置/fil/retrieval/free/0.0.0協議的處理器為檢索礦工的handleRetrievePieceForFree方法,最后返回檢索礦工。

調用porcelain.API對象的PubSubSubscribe方法,訂閱/fil/blocks/devnet-3主題的區塊通知,并設置為全節點的BlockSub屬性。?

調用porcelain.API對象的PubSubSubscribe方法,訂閱/fil/msgs/devnet-3主題的消息通知,并設置為全節點的MessageSub屬性。

啟動一個協程,在協程中調用全節點的handleSubscription方法,處理區塊通知。這個方法主體是一個無限循環。它從參數指定的主題中讀取主題,并調用參數指定的方法進行處理。區塊通知訂閱的是/fil/blocks/devnet-3,它的處理方法是全節點的processBlock方法。

啟動一個協程,在協程中調用全節點的handleSubscription方法,處理消息通知。消息通知訂閱的是/fil/msgs/devnet-3,它的處理方法是全節點的processMessage方法。這個方法把收到的消息進行反序列化,然后調用core.Inbox對象的Add方法,把消息對象保存在core.MessagePool對象中。

調用chain.Store對象的HeadEvents方法,使用其返回的發布/訂閱對象的Sub方法,訂閱新區塊頭部主題new-head。

調用porcelain.API對象的ChainHead方法,返回處理區塊鏈頭部的函數,在一個協程中調用全節點的handleNewHeaviestTipSet方法,處理區塊鏈頭部消息。

非離線模式下,啟動net.Bootstrapper引導對象。引導對象會連接到所有的引導節點,并在連接成功后,調用protocol.hello.helloNotify對象的Connected方法,從而向遠程節點發送自身的頂層區塊信息,而遠程節點也會向我們發送它的頂層區塊信息,從而開啟區塊同步過程。

設置心跳服務。

生成命令行環境commands.Env對象。

生成服務器配置變量

生成GoServeMux處理器對象,設置它處理/debug/pprof/請求的對象為Go自身的DefaultServeMux;處理/api/請求的go-ipfs-cmds類庫的handler對象。handler對象持有上面生成的環境變量、服務器配置變量等。

創建Http服務器。

在一個單獨線程中啟動Http服務器。

Tags:PRONEWAINAPIDeSpace ProtocolNEWB價格PoochainPAPI

波場
BIT:研報:比特幣軟件版本7年變遷,最大的變化在哪兒?_ITC

來源:BitMEX 編譯:頭等倉 BitMEX研究團隊進行了35次初始區塊下載,將初始區塊下載時間作為一個基準測試的指標,以此來測試BitcoinCore的性能.

1900/1/1 0:00:00
比特幣:區塊鏈的過去十年:回顧2010年至2020年_加密貨幣

來源|ConsenSys 編輯|Summer 2009年1月3日,在全球金融危機加劇全球經濟不平等鴻溝的背景下.

1900/1/1 0:00:00
區塊鏈:區塊鏈入門 | 區塊鏈在農業領域能有什么用武之地?_PLAT

作者:Wayne 來源:白話區塊鏈 如今,區塊鏈技術正在多個行業應用已不再是新聞。我們可以看到,區塊鏈已經開始影響金融業、酒店業、醫療保健、房地產、物流、在線廣告等.

1900/1/1 0:00:00
LINK:如何實現真正的去中心化預言機?_INK

前言:預言機是整個加密世界非常重要的一環。不過,當前的去中心化預言機還無法達到領先公鏈級別的安全和去中心化.

1900/1/1 0:00:00
ENS:區塊鏈域名:簡單點,和復雜的地址說再見_ethereum怎么讀

作者:peijie 來源:?imToken 編者注:原標題為《簡單點,和復雜的地址說再見》每個人都有唯一的身份證號碼,為什么我們還需要名字?上網時我們實際訪問的是一個個IP.

1900/1/1 0:00:00
區塊鏈:《中國區塊鏈產業園區發展圖譜》發布:五大維度洞察園區發展實況_web3幣種

編者按:本文首發于微信公眾號鋅鏈接,策劃:陳海寧王巧?制圖:莫榮晨賀一濤產業園區就是產業朋友圈。區塊鏈已經成為國內提升數字經濟經營能力的核心支撐技術之一.

1900/1/1 0:00:00
ads