前言
随着Filecoin/Lotus公链越来越接近启动,真实数据的处理也越来越重要了。根据官方的设计,真实数据的有效算力是自填自挖算力的10倍,鉴于真实数据的比重是如此之在,从今天起,我们就来了聊下真实的相关处理情况,今天为本部分的第一篇。
当前情况下官方的机器人会给存储矿工发送经过验证的真实数据,未来随着基础设施的完善,也会有其他方式来发送真实数据,比如客户端自己指定某个矿工来发送数据。接下来我们从客户端开始来研究下Lotus是怎么处理真实数据。
当客户端要存储真实数据时,他会调用lotusclientdealdataCidminerIdpriceduration命令发送数据到指定的矿工。
正文
当Lotusdaemon接收到这个请求之后就开始了交易处理。Lotusdaemon会调用go-file-markets类库的StorageClient对象对交易进行处理。
Optimism推出“超级链代币列表”功能,简化桥接代币过程:4月25日消息,据官方博客,以太坊二层解决方案Optimism宣布推出“超级链代币列表(Superchain Token List)”功能,它将在这些链之间提供重要的连续性。这个统一的代币列表将简化以太坊和各种OP链之间桥接代币的过程,简化代币的发现和管理。
该功能的工作流程为,开发者可在Superchain Token List的Github库中创建一个PR(Pull Request),添加到列表中的每个代币都要根据请求者提供的数据进行自动验证。在此过程中,Optimism将验证代币的链上信息,并验证资产是否可以使用标准桥接。代币构建和发布过程也采用了自动化。一旦代币被合并到代币列表存储库中,它就会立即部署到超级链代币列表中。[2023/4/25 14:24:55]
因为StorageClient对象被LotusAPI对象所依赖,所以在启动Lotus的过程中,DI容器会调用StorageClient函数来创建它。
火必Q1销毁了超82万枚HT代币:金色财经报道,加密货币交易所火必在 2023 年第一季度销毁了827,226 个 HT 代币。自4月15日机制启动以来,累计销毁币296,989,226枚。季度通缩率达到0.3826%。交易所总发行量20301万枚,市场成交161362774枚HT。[2023/4/17 14:08:42]
StorageClient函数流程如下:
调用NewFromLibp2pHost函数,生成StorageMarketNetwork对象。net?:=?smnet.NewFromLibp2pHost(h)
调用NewClient函数,生成Client对象。c,?err?:=?storageimpl.NewClient(net,?ibs,?dataTransfer,?discovery,?deals,?scn,?storageimpl.DealPollingInterval(time.Second))
Binance已向韩国金融监管机构申报对Gopax的收购:3月7日消息,Binance 已完成收购 Gopax 前的最后阶段,即向韩国金融监管机构申报。Gopax 向韩国金融服务委员会金融情报室 (FIU) 提交虚拟资产经营者变更报告。报道指出,如果 FIU 接受这份变更报告,这将是全球币市交易平台通过韩国韩元交易平台进入韩国市场的首例。根据特定金融信息法,公司代表或董事变更登记时,必须提交变更报告。
报道称,即使 FIU 接受了申报,也必须考虑全北银行是否会继续向 Gopax 提供实名账户,如果全北银行感到股东变更的负担并取消合作,Gopax 的虚拟资产运营商的资格可能会被剥夺。(Newsis)[2023/3/7 12:46:11]
scn即node对象,也是环境对象返回的节点对象,这个对象是ClientNodeAdapter对象由DI容器调用NewClientNodeAdapter函数而创建。
灰度比特币信托负溢价率达31.98%:金色财经消息,根据Tokenview链上数据显示,当前灰度总持仓量达199.73 亿美元,主流币种信托溢价率如下:
BTC,-31.98%;
ETH,-25.64%;
ETC,-61.33%;
LTC, -43.59%;
BCH,-16.07%。[2022/7/28 2:42:49]
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对象。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。