上链数据怎么在浏览器显示

公司目前需求是上链后的数据可以在浏览器查看

通过java-sdk SimpleDataExample部署合约的接口,目前使用这种方式上链已经可以了,不过因为创建合约的接口对数据做了这样的处理
String init = contractCode + cleanHexPrefix(constructorCode); 导致上传的数据在浏览器上只显示了Hex,没有办法显示UTF-8或者其他格式,不知道有没有其他处理办法?

你意思是在 microscope 里显示吗?
还是你们基于 JDK 重新开发了应用?

在microscope上展示,调用其他的几个部署合约的接口是可以的,但是获取data后解密比较麻烦,通过自己的生成的合约在microscope上好像只能展示Hex这一种格式,我看是加了String init = contractCode + cleanHexPrefix(constructorCode)这一行代码导致的

我一直没有太想明白,咱们这个上链数据是什么?然后上到哪里?

不知你有没有看过我之前回的这个 talk :

看完后,能把你的场景和想要的结果描述清楚吗?

想要的结果很简单
一、是数据存证,比如通过交易的方式使数据上链,目前sdk我看到几种方式,比如SimpleDataExample自定义合约的方式
二、希望上链之后可以在microscope上看到一些简要信息,不仅仅是Hex信息

我来理解一下:

  1. simpleData 的合约是:https://github.com/cryptape/cita-sdk-java/blob/develop/tests/src/main/resources/SimpleData.sol
pragma solidity ^0.4.24;

contract SimpleData {
    uint256 public userId;
    bytes public userName;
    string public userDesc;
    address public userAddr;

    constructor(uint256 number, bytes name, string desc, address addr)
        public
    {
        userId = number;
        userName = name;
        userDesc = desc;
        userAddr = addr;
    }
}

实际上是把一些合约的数据在创建合约时,通过它的构造接口带进来。这意味着你有多少份数据就要部署多少个合约。

  1. 希望通过 Microscope 的 Tx 窗口看到交易的数据。其实就是下面的 data 区。

然后,你希望的显示结果类似于:

不知我有没有理解错?

是的,目前来看,自定义合约的方式好像无法显示这个效果,不知道有没有其他办法

首先,得先了解一下这里 parameters 解析的原理是什么?

  1. 获取调用合约的交易参数;实际上就是获得合约函数的入口参数,就是上面所显示的 Hex 内容;

  2. 从链上获取这个合约的 abi 信息,这个 abi 包括了上 1 中的参数个数与类型描述。

  3. 根据 1, 2 将上图中的 Hex 解析成 Parameters 显示形式。

因此,我上面描述的:

达成不了这个目标,你需要:

  • 设计一个智能合约,用户接收你所上传的数据,然后把这些数据写入对应用的帐户(当然这个数据结构由你来定)中;例如:
function setData(id, car_license, ...) {
   ...
}

  • 将合约的 abi 一同上传到链上;

  • 通过交易调用合约的 setData 接口。

这样你就可以在浏览器上看到解析后的数据了。

不知道我有没有解释清楚?你可以先尝试一下。

谢谢,java-sdk有没有相关的demo可以参考一下

@DuanYangyang, 我们有相关的例子吗?
我只看到下面这里有点 abi 的说明:

可以参考这个合约,参数通过 set 设置,通过 get 获取,构造方法可以不用,当调用 set 合约方法时,data 就可以在 microscope 上看到 json 数据了

@shenpingfeng
这个最后解决了吗,怎么实现的呢?

@DuanYangyang
可以再详细描述一下实现的过程嘛? 另外,给的示例代码里面没有set方法

@chenpeng 如果您遇到问题与该帖情况相同,那还有一个解决方案, 通过上传 ABI 文件:

这是 microscope 本身就有的功能,目前最新版本是 microscope-v2,也具有该功能,GitHub 链接:https://github.com/cryptape/microscope-v2

如上述方案都不能解决您的问题,请具体描述下您的应用场景及问题~