• 评论
  • 0人喜欢
  • 分享到
  • 微信
    打开微信“扫一扫”,打开网页后点击屏幕右上角“分享”按钮
  • 空间
  • 微博
  • twitter
  • facebook

融合多链(比原链以太坊)开发DAPP,发挥比原特性和融合PPk开放协议的经验分享之二

在上一个基于比原链和PPk开放协议的小游戏DAPP–“我画你猜”(点击查看)收获的经验基础上, 我们PPk技术社区进一步实现了一个采用PPk开放协议来融合多链(本示例采用比原链+以太坊为例)共同发挥的网络社群应用DEMO——“JoyPub趣吧”。

可以通过下面两种方式访问:
1. 传统的网址: http://BTMdemo.ppkpub.org/joy/pub/
2. 基于区块链的PPk ODIN标识网址: ppk:JOY/pub/

20181009-main-1

注:类似DAT、IPFS等正在发展中的WEB3.0开放协议,目前大众使用的电脑和手机浏览器还不能原生支持访问。要访问“ppk:joy/pub/”这样的ODIN标识网址,现在可以运行我们PPk开发的JAVA开源工具的代理服务,就能使用现有浏览器来访问PPK网络资源了,比如 http://btmdemo.ppkpub.org:8088/ 或 http://45.32.19.146:8088/ 就是我们运行的示例服务,在浏览器里打开该代理服务网址然后输入要访问的 PPk ODIN标识网址就可以看到了。

“JoyPub趣吧”是一个融合PPk开放协议和多链(比原链+以太坊)实现的去中心化社交网络群组应用原型,通过比原链的retired交易类型来注册用户和发布社交群组信息,然后可以选择比原链或以太坊等不同公链来发送附加贴文消息的交易,在此过程中融合展现PPk开放协议的特点,所有数据都通过ODIN标识支持完全开放访问,体现融合区块链技术的对等万维网(WEB3.0)的原型概念。

具体实现方案上,“JoyPub趣吧”采用PPk ODIN标识定义了三类开放数据命名:

1.用户(User):
本示例采用比原链自主注册用户,相应ODIN标识为 ppk;JOY/pub/Bytom/txid#
其中的txid取值为对应链上交易唯一ID,例如 ppk:JOY/pub/bytom/eea1865f5dd8774cea2c9b3c8c06256697ca2a0f4fb100387064a9ee150d3739#

内容定义格式示例如下,参考 https://schema.org/ 标准化数据集可以进一步灵活扩展。


{
"@context": [
"https://schema.org/",
"https://w3id.org/security/v1"
],
"@type":"PeerUser",
"name": "用户昵称",
"avtar": "用户头像图片URL,建议用img_data_url",
"email": "用户邮箱",

"authenticationCredential": [
{
"type": "RsaCryptographicKey",
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----"
}
],
}

注:定义中的公钥publicKeyPem可用于对用户所发消息内容附带签名的验证。

2.群组(Pub):
本示例采用比原链自主发布群组,相应ODIN标识为 ppk;JOY/pub/bytom/txid#
其中的txid取值为对应链上交易唯一ID,例如 ppk:JOY/pub/bytom/cbfd1f63bc6500c111d7e472e6f772eefe9110acfcd1dd0cf1c4bf47e78d684e#
内容定义格式示例如下,参考 https://schema.org/ 标准化数据集可以进一步灵活扩展。


{
"@context": [
"https://schema.org/",
"https://ppkpub.org/peerpub/v1"
],
"@type":"PeerPub",
"title":"群组名称",
"manager_odin":"群组创建者ODIN标识",
"pub_logo_url": "群组标志图片URL",
"gas_asset_uris":[
"ppk:BTM/asset/asset_id.....",
"ppk:JOY/pub/ETH-rinkeby/address..."
],
}

注:定义中的gas_asset_uris是用于识别提取属于该群组关联贴文的资产标识列表,通过对应区块链Explorer API查询指定资产标识相关的交易列表即可过滤出符合“JoyPub趣吧”定义的贴文。
每个群组可以选择在多个链上发行资产,用户可以通过应用来自主选择花费哪一个资产来发送消息,最终由应用来整合分散在多链上的贴文数据按一定顺序比如时间线进行展现。

3.贴文(Post):
本示例支持用户根据群组设置可自主选择比原链或以太坊之一来发送贴文。
通过比原链发送的贴文对应ODIN标识为 ppk:JOY/pub/bytom/txid#
例如 ppk:JOY/pub/bytom/4a8b390bd07c72c799807caf8788cbafa4f7fbb68c3ac5034240ce6d7fa3d5a9#
通过以太坊(Rinkeby测试网络)发送的贴文对应ODIN标识为 ppk:JOY/pub/eth-rinkeby/txid#
例如 ppk:JOY/pub/eth-rinkeby/0x74090b01f3e66b2435ad84af9c9706c17f044d90e0d449d2d1f3d2e831b917ac#

内容定义格式示例如下,参考 https://schema.org/ 标准化数据集可以进一步灵活扩展。


{
"@context": [
"https://schema.org/",
"https://ppkpub.org/peerpub/v1"
],
"@type":"PeerPubPost",
"post_hex":{
"author_odin":"发文者的用户ODIN标识",
"pub_uri":"所发群组的ODIN标识网址",
"text":"UTF-8编码的文本内容",
"media":[
{
"@type": "MediaObject",
"contentUrl": "图片视频等媒体URI",
}
]
}
"sign":"RSAwithSHA256:xxxxxxxxxx"
}

这里探讨下结合区块链的社交网络DAPP应用相比传统的SNS应用有什么本质的改变?
我们PPk社区认为,相比传统SNS网站的“围城”和“数据黑盒”,DAPP应用模式下,用户自主拥有标识,并通过区块链技术达成完全开放的“数据白盒”,进行“对等、可信”的信息交流。这样同一份社交信息,开放、可信、持续地托管到区块链上,可以被其它SNS应用所自主、可信、稳定地调用和整合,所谓“1+1>2”,自组织成更有生命力的SNS应用生态。

以我们这次做的“JouPub趣吧”DMEO来说,每一个用户、群组和贴文都开放、可信地存放在比原链或以太坊上,拥有能保证跨链唯一性的ODIN标识,例如下图:

20181009-pub-1

这是应用示例中看到的一个群组的展示界面,其传统网址是 http://btmdemo.ppkpub.org/joy/pub/go.php?pub_odin=ppk:JOY/pub/bytom/cbfd1f63bc6500c111d7e472e6f772eefe9110acfcd1dd0cf1c4bf47e78d684e
其中的pub_odin参数地址(ppk:JOY/pub/bytom/cbfd1f63bc6500c111d7e472e6f772eefe9110acfcd1dd0cf1c4bf47e78d684e)就是该群组的ODIN标识,可以被跨链跨平台应用所自主可信地访问,通过支持ODIN标识和PTTP协议的工具比如PPk浏览器,间接调用比原链相关API,就能获取到该ODIN标识对应群组定义的JSON数据,如下图所示:

20181009-pub-2

同时获取者能自主判断所拿到的源数据是否是可信的,这里面就用到了区块链技术,其实机制也很简单,就是把公钥可信地存储在区块链上,通过ODIN标识来获得和验证数据块签名即可,具体实现方案可以访问 http://ppkpub.org/#odinproject 深入了解。

在群组页面下方,可以输入要发的文本信息,然后按回车键或点击“发送”按钮,即可通过缺省的比原链来发送retired交易。如果点击“+”图标,对于支持可选择比原链或以太坊多链发送消息的群组,显示如下图所示:

20181009-post-4

在这里,用户就可以选择花费指定比原资产或者以太币发送附带贴文的交易。

注:用户浏览器上需要安装有Metamask以太坊钱包插件并切换到Rinkeby测试网络上,才能发送测试以太交易。

上述群组展示界面右上角列出的“趣吧发起人”是对应的用户ODIN标识,点击可以参看到该用户关联信息,如下图所示:

20181009-user-1

其中的ODIN标识(ppk:JOY/pub/bytom/eea1865f5dd8774cea2c9b3c8c06256697ca2a0f4fb100387064a9ee150d3739),通过支持ODIN标识和PTTP协议的工具比如PPk浏览器,间接调用比原链相关API,就能获取到对应用户记录的JSON数据,如下图所示:

20181009-user-2

进一步我们通过浏览器的“查看网页源码”的功能,可以查看到该群组页面的更多信息,如下图所示:

20181009-post-1

这里重点留意图中的红色方块标注的文本内容,是对应每一条贴文的ODIN标识URI。

如上图中的“ppk:JOY/pub/bytom/4a8b390bd07c72c799807caf8788cbafa4f7fbb68c3ac5034240ce6d7fa3d5a9” ,是通过比原链交易发送的一条贴文消息,通过支持ODIN标识和PTTP协议的工具比如PPk浏览器,间接调用比原链相关API,就能获取到对应贴文记录的JSON数据,如下图所示:

20181009-post-2

将其中的贴文HEX编码转换为ASCII编码得到的贴文数据如下:


{"author_odin":"ppk:JOY/pub/bytom/a572e8852ef9b4a34ae132ec1e768dc5125211d702f250af34d54416c1e99346","pub_uri":"ppk:JOY/pub/bytom/cbfd1f63bc6500c111d7e472e6f772eefe9110acfcd1dd0cf1c4bf47e78d684e","parent_post_uri":"","text":"hi%20from%20wx","media":[{"@type": "MediaObject"}]}

而另一条贴文的ODIN标识是“ppk:JOY/pub/eth-rinkeby/0x74090b01f3e66b2435ad84af9c9706c17f044d90e0d449d2d1f3d2e831b917ac”,是通过以太坊交易发送的一条贴文消息,通过支持ODIN标识和PTTP协议的工具比如PPk浏览器,间接调用以太坊相关API,就能获取到对应贴文记录的JSON数据,如下图所示:

20181009-post-3

将其中的贴文HEX编码转换为ASCII编码得到的贴文数据如下:


{"author_odin":"ppk:JOY/pub/bytom/85de26d809435faaab7d1012c7bfd7c9ddd07f4f49fc14ee367287e0ff3e95c1","pub_uri":"ppk:JOY/pub/bytom/cbfd1f63bc6500c111d7e472e6f772eefe9110acfcd1dd0cf1c4bf47e78d684e","parent_post_uri":"","text":"%E8%AF%95%E8%AF%95%E9%80%9A%E8%BF%87eth%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF","media":[{"@type": "MediaObject"}]}

上述示例展示了通过PPk开放协议将比原链和以太坊融合到一个应用里的原型概念方案,可以灵活发挥不同区块链平台的各自优势特性,比如比原链发行数字资产很简单和交易成本低,以太坊的Metamask插件很好用,而且应用也能支持随着技术发展来接入更多新兴公链比如EOS、IPFS等,获得更自主、灵活的发展空间。

在上述这个示例基础上,我们PPk技术社区正在结合比原链和更多区块链平台的各自特性,进一步构思和实现更多应用示例,体现PPk开放协议在WEB3.0生态中的独特“衔接”作用,欢迎继续关注。

附:本示例原型源码是PHP+JS编写的。GITHUB网址 https://github.com/uttest2008/joypub

相关资讯
加密货币在委内瑞拉经济危机中,如何发挥人道主义作用
游戏新风口.链上新未来 2018HTML5区块链游戏大会即将举办
乌镇·杨东:以链治链—区块链将率先在监管层面落地
四川结合自身优势率先启动成立“区块链知识资产联盟链”
预警:传销大佬文通链wtb施家华疑似跑路 项目已上BTC98交易平台
一链矿盒是什么? 乐视开始进军区块链行业
对冲基金Tetras Capital:看跌以太坊,看涨比特币
没有了发币的以太坊,还能起来吗?
咨询公司预测以太坊在2018年末价格将稳步增长