协议、服务与应用库开发方案v1



  • 1.简述

    自由协议、开放服务和密码应用是自由共识生态重要的三个基础设施,是实现基础设施去中心化的关键。

    目前三个基础设施的基本逻辑和协议已经设计完成,需要根据协议设计开发数据库、API和展示网站。

    2.自由协议系统

    2.1.概况

    自由协议系统实现生态协议的去中心化,任何人在链上开放注册和管理协议,通过评价和开发采用以市场的方式优胜劣汰。

    自由协议当前的协议版本为《FEIP1V6_FreeProtocol(en-US)》,协议文本链接:https://bbs.cash/topic/533/

    2.2.功能

    从链上获取OP_RETURN包含了”type”=”FEIP”, 且”sn”=”1”的条目,按照协议规则解析数据,形成数据库,并提供查询接口,以及展示和搜索网站。

    2.3.协议总表

    2.3.1.字段

    从链上解析的本协议所有条目记录在总表中,包含以下字段:

    截屏2021-07-30 下午5.38.49.png

    2.3.2.数据处理

    1.txid为键
    2.将data.hash命名为pid,即协议的唯一标识(protocol id)。

    2.4.协议状态表

    2.4.1.字段

    截屏2021-07-30 下午5.41.04.png

    2.4.2.数据处理

    1. 以pid为键
    2. 对pid以时间为序依次执行op操作更新本表。
    3. 一个pid对应的协议,只有其首次签发者有权进行其他操作,非首次签发者发起的交易直接丢弃;
    4. 当op=”register”时,如果该pid已经在生效中,则交易无效,如果该pid不存在或已注销则:
      a)令pid=data.hash,创建该pid条目;
      b)令firstTxid=本交易txid;
      c)令firstTime=lastTime=本交易time;
      d)令signer=本交易第一个输入地址;
      e)令tCd=tCd+cd;
      f)令tRate=rate;
      g)令status=1;
    5. 当op不等于”register”时
      a)验证pid是否已存在,且第一个输入是否等于signer,否则丢弃该交易。
      b)令tCd=tCd+cd;
      c)令lastTime=本交易time;
      d)令lastTxid=本交易txid;
      e)当op=”update”时,更新所有来自op_return,data的字段信息;
      f)当op=”unregister”时,令status=0;
      g)当op=”rate”时,令tRate=(tCdtRate+cdrate)/(tCd+cd),即以币天销毁为权重加权本次评价与历史累计评价。
      h)其他字段不变

    2.5.查询接口

    提供6个查询接口:

    2.5.1.pid查询接口

    请求参数为pid,返回协议状态表中,该pid的协议当前信息。

    2.5.2.类型编号查询接口

    请求参数为type(协议类型)和sn(协议编号),返回协议状态表中,type和sn同时等于请求参数的协议当前信息。

    2.5.3.协议历史查询接口

    请求参数为pid,返回总表中,该pid的按时间正序排列的所有条目信息。

    2.5.4.签发者查询接口

    请求参数为fch地址,返回协议状态表中,signer等于请求参数的所有协议当前信息。

    2.5.5.协议类型查询接口

    请求参数为类型(type),返回协议状态表中,type等于请求参数的所有协议当前信息。

    2.5.6.协议名模糊查询接口

    请求参数为协议名(name),返回协议状态表中,name包含请求参数的所有协议当前信息。

    2.5.7. 更新条目列表接口

    请求参数为时间,返回协议状态表中lastTime大于参数时间的所有条目。

    2.6.网站

    1. 显示status=1的《协议状态表》。
    2. 默认以tRate逆序显示。可选type(正序)、firstTime(逆序)、tCd(逆序)、tRate(逆序)。
    3. 字段默认显示type、sn、name、signer、desc(隐藏末尾)、pid(隐藏中间)。
    4. 点击“详情”给出当前pid《协议状态表》详情。
    5. 点击“历史”给出该pid的历史记录,每条记录可点击查看“详情”,详情依据txid从总表中获得。
    6. 查询:提供pid、类型、协议名、签发者查询《协议状态表》(status值不限),提供“详情”和“历史”按钮。

    3.开放服务系统

    3.1.概况

    开放服务系统实现商业服务的去中心化,任何人在链上开放发布自己愿意提供的服务,通过应用评价的方式接受市场的优胜劣汰。
    开放服务当前的协议版本为:《FEIP29V1_Service(en-US)》https://bbs.cash/topic/566/

    3.2.功能

    从链上获取OP_RETURN包含了”type”=”FEIP”, 且”sn”=”29”的条目,按照协议规则解析数据,形成数据库,并提供查询接口,以及展示和搜索网站。

    3.3.服务总表

    3.3.1.字段

    从链上解析的服务协议所有条目记录在总表中,包含以下字段:
    截屏2021-07-30 下午5.41.15.png

    3.3.2.数据处理

    1.txid为键
    2.当op为start,令sid=txid

    3.4.服务状态表

    3.4.1.字段

    截屏2021-07-30 下午5.41.22.png

    3.4.2.数据处理

    1. 以sid为键;
    2. 对sid以时间为序依次执行op操作更新本表。
    3. 一个sid对应的服务,只有其首次签发者有权进行其他操作,非首次签发者发起的交易直接丢弃;
    4. 当op=”start”时
      a)令sid=txid,创建该sid条目;
      b)令firstTxid=本交易txid;
      c)令firstTime=lastTime=本交易time;
      d)令signer=本交易第一个输入地址;
      e)令tCd=cd;
      f)令tRate=rate;
      g)令status=1;
    5. 当op不等于”start”时
      a)验证sid是否已存在,且第一个输入是否等于signer,否则丢弃该交易。
      b)令tCd=tCd+cd;
      c)令lastTime=本交易time;
      d)令lastTxid=本交易txid;
      e)当op=”update”时,更新所有来自op_return的data的各字段信息;
      f)当op=”stop”时,令status=0;
      g)当op=”restart”时,令status=1;
      h)当op=”rate”时,令tRate=(tCdtRate+cdrate)/(tCd+cd),即以币天销毁为权重加权本次评价与历史累计评价。
      i)其他字段不变

    3.5.查询接口

    提供5个查询接口:

    3.5.1.sid查询接口

    请求参数为sid,返回服务状态表中,该sid的服务当前信息。

    3.5.2.类型查询接口

    请求参数为type(服务类型),返回服务状态表中,type等于请求参数的服务列表。

    3.5.3.服务历史查询接口

    请求参数为sid,返回服务总表中,该sid的按时间正序排列的所有条目信息。

    3.5.4.签发者查询接口

    请求参数为fch地址,返回服务状态表中,signer等于请求参数的所有服务当前信息。

    3.5.5.服务名模糊查询接口

    请求参数为协议名(name),返回协议状态表中,stdName或localName中包含请求参数的所有服务的列表。

    3.5.6. 更新条目列表接口

    请求参数为时间,返回服务状态表中lastTime大于参数时间的所有条目。

    3.6.网站

    1. 显示status=1的《服务状态表》。
    2. 默认以tRate逆序显示。可选type(正序)、firstTime(逆序)、tCd(逆序)、tRate(逆序)。
    3. 字段默认显示stdName、type、signer、desc(隐藏末尾)、sid(隐藏中间)。
    4. 点击“详情”给出当前sid《服务状态表》详情。
    5. 点击“历史”给出该sid的历史记录。
    6. 查询:提供sid、stdName、类型、签发者查询

    4.密码应用系统

    4.1.概况

    密码应用系统实现各种应用的去中心化,任何人在链上开放发布自己开发的应用,通过应用评价的方式接受市场的优胜劣汰。

    密码应用当前的协议版本为:《FEIP15V4_CAPP(zh-CN)》https://bbs.cash/topic/597/

    4.2.功能

    从链上获取OP_RETURN包含了”type”=”FEIP”, 且”sn”=”15”的条目,按照协议规则解析数据,形成数据库,并提供查询接口,以及展示和搜索网站。

    4.3.应用总表

    4.3.1.字段

    从链上解析的密码应用协议所有条目记录在总表中,包含以下字段:

    截屏2021-07-30 下午5.41.35.png

    4.3.2.数据处理

    3.txid为键
    4.当op为start,令aid=txid

    4.4.应用状态表

    4.4.1.字段

    截屏2021-07-30 下午5.41.43.png

    4.4.2.数据处理

    1. 以aid为键;
    2. 对aid以时间为序依次执行op操作更新本表。
    3. 一个aid对应的应用,只有其首次签发者有权进行其他操作,非首次签发者发起的交易直接丢弃;
    4. 当op=”start”时
      a)令aid=txid,创建该aid条目;
      b)令firstTxid=本交易txid;
      c)令firstTime=lastTime=本交易time;
      d)令signer=本交易第一个输入地址;
      e)令tCd=cd;
      f)令tRate=rate;
      g)令status=1;
    5. 当op不等于”start”时
      a)验证sid是否已存在,且第一个输入是否等于signer,否则丢弃该交易。
      b)令tCd=tCd+cd;
      c)令lastTime=本交易time;
      d)令lastTxid=本交易txid;
      e)当op=”update”时,更新所有来自op_return的data的各字段信息;
      f)当op=”stop”时,令status=0;
      g)当op=”restart”时,令status=1;
      h)当op=”rate”时,令tRate=(tCdtRate+cdrate)/(tCd+cd),即以币天销毁为权重加权本次评价与历史累计评价。
      i)其他字段不变

    4.5.查询接口

    提供5个查询接口:

    4.5.1.aid查询接口

    请求参数为aid,返回应用状态表中,该aid的应用当前信息。

    4.5.2.类型查询接口

    请求参数为type(应用类型),返回应用状态表中,type等于请求参数的应用列表。

    4.5.3.应用历史查询接口

    请求参数为aid,返回应用总表中,该aid的按时间正序排列的所有条目信息。

    4.5.4.签发者查询接口

    请求参数为fch地址,返回应用状态表中,signer等于请求参数的所有应用当前信息。

    4.5.5.应用名模糊查询接口

    请求参数为应用名(name),返回应用状态表中,stdName或localName中包含请求参数的所有应用的列表。

    4.5.6. 更新条目列表接口

    请求参数为时间,返回应用状态表中lastTime大于参数时间的所有条目。

    4.6.网站

    1. 显示status=1的《应用状态表》。
    2. 默认以tRate逆序显示。可选type(正序)、firstTime(逆序)、tCd(逆序)、tRate(逆序)。
    3. 字段默认显示stdName、type、signer、desc(隐藏末尾)、aid(隐藏中间)。
    4. 点击“详情”给出当前sid《应用状态表》详情。
    5. “详情”中prot和serv中分别展示协议和服务id,点击显示该协议或服务的详情。
    6. 点击“历史”给出该sid的历史记录。
    7. 查询:提供aid、stdName、类型、签发者查询

    5.实施方案

    5.1.自由协作模式

    所有开发设计者一起参与自由共识生态贡献评估,获得贡献奖励回报。运营维护者在后续运营中获得运维的贡献奖励。

    5.2.开放投资模式

    在dplanet.io上公开发布融资需求,任何人可以投资本项目,按照约定向开发者投资,获得相应贡献奖励。

    5.3.封闭投资模式

    由项目组织者联络开发者、投资者等商议确定投资方案。

    2021.7.30


Log in to reply