前言
随着Filecoin/Lotus公链越来越接近启动,真实数据的处理也越来越重要了。根据官方的设计,真实数据的有效算力是自填自挖算力的10倍,鉴于真实数据的比重是如此之在,从今天起,我们就来了聊下真实的相关处理情况,今天为本部分的第一篇。
当前情况下官方的机器人会给存储矿工发送经过验证的真实数据,未来随着基础设施的完善,也会有其他方式来发送真实数据,比如客户端自己指定某个矿工来发送数据。接下来我们从客户端开始来研究下Lotus是怎么处理真实数据。
当客户端要存储真实数据时,他会调用lotusclientdealdataCidminerIdpriceduration命令发送数据到指定的矿工。
正文
当Lotusdaemon接收到这个请求之后就开始了交易处理。Lotusdaemon会调用go-file-markets类库的StorageClient对象对交易进行处理。
以太坊链上NFT销售总额突破360亿美元,但1月下降约13%:金色财经报道,据 Cryptoslam 最新数据,以太坊链上 NFT 销售总额已突破 360 亿美元,截至目前为 36,000,695,169 美元,链上交易总量达到 25,249,875 笔。数据显示,2023 年 1 月以太坊链上 NFT 销售额约为 4.76 亿美元,较 12 月 5.46 亿美元有所下降,降幅超过 12.8%。[2023/2/1 11:40:26]
因为StorageClient对象被LotusAPI对象所依赖,所以在启动Lotus的过程中,DI容器会调用StorageClient函数来创建它。
StorageClient函数流程如下:
调用NewFromLibp2pHost函数,生成StorageMarketNetwork对象。net?:=?smnet.NewFromLibp2pHost(h)
多家加密货币公司在过去一年里面临美国证监会更多审查:金色财经报道,在过去的一年里,寻求上市的加密货币公司面临着来自美国证监会(SEC)的更多审查,而财务困境和失败在这个动荡的行业中蔓延。包括Bullish Global、Circle Internet Financial和eToro Group在内,一批专注于加密货币的公司未能获得上市所需的SEC批准。这些公司正寻求通过与特殊目的收购公司(SPAC)合并的方式来实现在证券交易所上市。这是另一种上市途径,在监管加强和市场动荡结束SPAC繁荣之前,这种方式曾在2020年和2021年大行其道。 (华尔街日报)[2023/1/27 11:31:40]
调用NewClient函数,生成Client对象。c,?err?:=?storageimpl.NewClient(net,?ibs,?dataTransfer,?discovery,?deals,?scn,?storageimpl.DealPollingInterval(time.Second))
Terra生态跨链稳定币银行Orion Money将在未来12个月内逐渐关闭项目:6月7日消息,Terra生态跨链稳定币银行Orion Money将在未来12个月内逐渐关闭项目,其中从今天起的未来 3 个月内,Orion Money 将致力于维护 Web UI,为用户提供提现的机会(UST、ORION、xASTRO),团队还将升级 Orion 智能合约,以允许用户在 Web UI 被删除后直接从智能合约中提取其代币;3 个月后,用户将能够在接下来的 9 个月内直接从智能合约中提取他们的代币。
此外 Orion Money 团队将继续与 Terra Builders Alliance、TFL 和 Astroport 团队合作,寻找将新的 LUNA 和 ASTRO 代币空投分发给 Orion Money 用户的方法,并将按快照当日的存款比例进行分配。[2022/6/7 4:07:38]
scn即node对象,也是环境对象返回的节点对象,这个对象是ClientNodeAdapter对象由DI容器调用NewClientNodeAdapter函数而创建。
以太坊Layer 2总锁仓量跌至47.7亿美元,7日跌幅3.04%:金色财经报道,据 L2BEAT 数据显示,当前以太坊 Layer 2 总锁仓量跌至 47.7 亿美元,7 日跌幅 3.04%。其中,锁仓量前三分别为 Arbitrum(26.5 亿美元,7 日跌幅 3.75%)、dYdX(9.53 亿美元,7 日涨幅 0.12%)和 Optimism(4.74 亿美元,7 日跌幅 3.44%)。[2022/5/23 3:35:21]
NewClient函数内容如下:
生成两个IO对象。carIO?:=?cario.NewCarIO()
pio?:=?pieceio.NewPieceIO(carIO,?bs)
生成Client对象。c?:=?&Client{
????net:?????????????net,
????dataTransfer:????dataTransfer,
????bs:??????????????bs,
????pio:?????????????pio,
????discovery:???????discovery,
????node:????????????scn,
????pubSub:??????????pubsub.New(clientDispatcher),
????pollingInterval:?DefaultPollingInterval,
}
生成fsm状态组对象。statemachines,?err?:=?newClientStateMachine(
????ds,
????&clientDealEnvironment{c},
????c.dispatch,
)
c.statemachines?=?statemachines
fsm状态组对象使用的配置参数如下:return?fsm.New(ds,?fsm.Parameters{
????Environment:?????env,
????StateType:???????storagemarket.ClientDeal{},
????StateKeyField:???"State",
????Events:??????????clientstates.ClientEvents,
????StateEntryFuncs:?clientstates.ClientStateEntryFuncs,
????FinalityStates:??clientstates.ClientFinalityStates,
????Notifier:????????notifier,
})
环境对象为clientDealEnvironment。
状态对象为ClientDeal。
状态字段为State。
事件集合为ClientEvents,参考storagemarket/impl/clientstates/client_fsm.go文件。
状态处理函数集合为ClientStateEntryFuncs,状态机的状态处理器根据对应的状态获取到指定的函数进行处理。
终止状态集合为ClientFinalityStates。
通知对象为Client对象的dispatch方法。
使用配置选项,配置Client对象。c.Configure(options...)
设置数据传输监听对象。dataTransfer.SubscribeToEvents(dtutils.ClientDataTransferSubscriber(statemachines))
当传输结束、传输错误时会发送ClientEventDataTransferComplete、ClientEventDataTransferFailed等事件到fsm状态组。
返回Client对象。
在DI容器的OnStart钩子函数中调用Client对象的Start方法。Start方法调用自身的restartDeals方法开始进行重新交易。
返回Client对象。
免责声明:本专栏內容概不构成任何投资意见,內容亦并非就任何个别投资者的特定投资目标、财务状况及个别需要而编制。投资者不应只按本专栏內容进行投资.
1900/1/1 0:00:00上海检察方以涉嫌侵犯版权罪批捕D站创始人及相关人员的消息,再次令币圈想起了当初借D站场景发币的D社。被逮捕的「温某某」疑似D社发起人温博特.
1900/1/1 0:00:00最近,我们一直在思考DeFi领域如何发展以及如何顺应科技行业大趋势这一问题。BenThompson在?Stratechery上的blog?里面,用自己的聚合理论区分了平台公司和“聚合器”.
1900/1/1 0:00:00加密货币交易所Gemini的亿万富翁创始人CameronWinklevoss认为,下一个比特币牛市将大不相同.
1900/1/1 0:00:00测试网,测试网,测试网!以下是这期以太坊2.0进展更新的重点:Medalla多客户端测试网的启动日期已经设定;初始beta攻击测试网已经启动.
1900/1/1 0:00:002020年以来,DeFi渐显星火燎原之势,Uniswap、Balancer、Bancor、Compound、Aave等海外项目纷纷开启流动性挖矿奖励计划,赚尽眼球.
1900/1/1 0:00:00