关于智能合约运行的日志存放的位置和解析方式

大家好,
对已经部署在CITA上智能合约的function进行调用,function里面写了日志并且也触发了event,那么请问这些日志物理上保存在了哪里?
另外,采用sdk调用txhash拿到的receipt数据结构中,是能解析出来日志的。那么,sdk为什么能解析出receipt数据结构?

没太理解你说的 物理上 是什么意思,底层用的是 rocksdb ,存在一个 column 里面。最终物理上是在磁盘里呀。

为什么能够解析出日志(这里说的是解析出 receipt 里面存储 logs 里面 data 字段),因为日志的保存遵循固定的规范, abi-spec,解析出具体的 log 字段需要提前知道合约的 abi

为什么可以解析 receipt ?这里说的上个问题还是一个新的问题? sdk 没有对 receipt 进行解析,对返回结果直接进行显示的

可以这么理解否?链上已经保存了一个txhash对应的日志信息,这个日志信息在用sdk通过参数txhash查询的时候,data的数据结构已经是链上通过abi解析过的,data里面放的就是解析过以后的值。

给个具体的例子呗?否则不太好理解你上面说的内容。

log 里面的 data 是没解析过的呀,需要外面解析。
日志你可以理解为保存在链上(实际具体数据是没有在整个 block chain 的链式结果里的)