定义: 发布者:创作并发布内容 阅读者:付费并阅读发布者发布的内容 代理节点:被发布者挑选并信任,负责存储发布者发布的trx,并未阅读者提供加密过的内容 支付服务:被发布者挑选和信任,收取阅读者支付的费用并产生支付凭证 托管网关:发布者将自己的私钥存在托管网关,该网关可以代替发布者进行签名,可以实现根据支付网关凭证,给阅读者授权等功能
注意:支付网关,代理节点,托管网关是概念上的定义
流程:
- 代理节点将自己的轻节点URI和pubkey通过 ANNOUNCE_CONTENT_PROXY trx发送到链上
- 内容发布者可以通过 get_announced_content_proxy获得当前链上的代理节点列表
- 内容发布者挑选一个或多个当前链上(group)受信任的代理节点
- 发送者创作内容,
- 内容发送者(或托管网关)将内容使用hybird加密,对选出的受信任代理节点的pubkey(和自己的pubkey)进行加密,生成密文,发送POST trx,将密文上链
- 代理节点通过新的block,获得含有该密文的trx
- 代理节点判断是否代理该trx(出于一些原因,代理节点可能并不想给发布者提供服务)
- 如果代理节点同意代理该trx,则通过PROXY_APPROVED trx,将自己将代理这个trx并愿意提供内容的 trx发送到链上
- 阅读者购买某个内容(trx)并付费
- 支付服务帮助发布者收费并生成凭证
- 发布者在收费成功之后,通过发送(或由托管网关发送) BINDING_TRX_WITH_PUBKEY trx,将 {阅读者提供的pubkey,某个trx_id}键值对发送到链上
- 阅读者通过某个全节点提供的轻节点URI查询到 代理某个trx (by trx_id)的代理节点列表
- 阅读者通过某个代理节点请求该trx的内容,提供自己的pubkey和签名
- 代理节点查询该pubkey是否已经和该trx_id绑定
- 如已成功绑定,则代理节点用自己的pubkey将该内容解密,并用阅读者提供的pubkey加密,并将trx content反还给阅读者
- 阅读者用自己pubkey对应的私钥将该密文解密并阅读