Skip to content

Latest commit

 

History

History
28 lines (24 loc) · 2.13 KB

bind_pubkey_with_trx.md

File metadata and controls

28 lines (24 loc) · 2.13 KB

定义: 发布者:创作并发布内容 阅读者:付费并阅读发布者发布的内容 代理节点:被发布者挑选并信任,负责存储发布者发布的trx,并未阅读者提供加密过的内容 支付服务:被发布者挑选和信任,收取阅读者支付的费用并产生支付凭证 托管网关:发布者将自己的私钥存在托管网关,该网关可以代替发布者进行签名,可以实现根据支付网关凭证,给阅读者授权等功能

注意:支付网关,代理节点,托管网关是概念上的定义

流程:

  1. 代理节点将自己的轻节点URI和pubkey通过 ANNOUNCE_CONTENT_PROXY trx发送到链上
  2. 内容发布者可以通过 get_announced_content_proxy获得当前链上的代理节点列表
  3. 内容发布者挑选一个或多个当前链上(group)受信任的代理节点
  4. 发送者创作内容,
  5. 内容发送者(或托管网关)将内容使用hybird加密,对选出的受信任代理节点的pubkey(和自己的pubkey)进行加密,生成密文,发送POST trx,将密文上链
  6. 代理节点通过新的block,获得含有该密文的trx
  7. 代理节点判断是否代理该trx(出于一些原因,代理节点可能并不想给发布者提供服务)
  8. 如果代理节点同意代理该trx,则通过PROXY_APPROVED trx,将自己将代理这个trx并愿意提供内容的 trx发送到链上
  9. 阅读者购买某个内容(trx)并付费
  10. 支付服务帮助发布者收费并生成凭证
  11. 发布者在收费成功之后,通过发送(或由托管网关发送) BINDING_TRX_WITH_PUBKEY trx,将 {阅读者提供的pubkey,某个trx_id}键值对发送到链上
  12. 阅读者通过某个全节点提供的轻节点URI查询到 代理某个trx (by trx_id)的代理节点列表
  13. 阅读者通过某个代理节点请求该trx的内容,提供自己的pubkey和签名
  14. 代理节点查询该pubkey是否已经和该trx_id绑定
  15. 如已成功绑定,则代理节点用自己的pubkey将该内容解密,并用阅读者提供的pubkey加密,并将trx content反还给阅读者
  16. 阅读者用自己pubkey对应的私钥将该密文解密并阅读