首页
帖子
账号
关于
{"ObjectType":101,"Sequence":6,"PreHash":"A2BEC21E722A7534B957F2CB658EB6CB","Content":"接上条\n个体可以自由的创建N条【公告单链】,【个体有发表内容的自由】\n同时向【公告单链】持续写入内容是需要消耗【人类时间】的,准备内容的时间,所有【公告】间的时间跨度,最近【公告】的写入时刻\n并且屏蔽一条【公告单链】的成本几乎为零(几乎不需要消耗【人类时间】),个体可以构建基于账号的【内容过滤器】,【个体有屏蔽内容的自由】\n\n接下来,从0开始谈谈【公告】的传播\n1、初始状态,个体各自创建自己的账号,发布自己的公告,构建自己的【公告单链】,\n个体之间不发生【公告】数据的交互,默认的初始状态是不接收任何其他个体的【公告】,\n此时,没有违背个体意愿的垃圾信息;\n2、个体通过物理世界或者网络空间,获取到了其他个体的账号,\n并基于个体自由意愿接收来之账号oA、oB、oC...等账号的【公告】,\n个体一旦不愿意继续接收某个账号的【公告】时,可以自由的屏蔽该账号,\n关注账号白名单以外账号发布的【公告】,都不会出现在个体眼前;\n3、现在有一个问题,我关注了账号oG,我想把oG发布的一条很好的【公告】转发给我的朋友,\n但是我的朋友并没有将oG纳入白名单,即便我把【公告】发给他,他的计算设备也会屏蔽掉这条【公告】,\n这种设计显然是不好,物理世界中也不是只有直接消息,而没有间接消息(二次传播消息)。\n\n\n因此,要引入间接传播机制,直接例子\n账号obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf的【公告#1】\n内容是\"o22Zhy8MzQYemARcftajENtfikjbhTNiqg:自主可控\",\n用于声明自己准备使用账号o22Zhy8MzQYemARcftajENtfikjbhTNiqg发布一些自主可控相关的内容\n{\n\"ObjectType\":101,\n\"Sequence\":1,\n\"PreHash\":\"F4C2EB8A3EBFC7B6D81676D79F928D0E\",\n\"Quote\":[],\n\"Content\":\"o22Zhy8MzQYemARcftajENtfikjbhTNiqg:自主可控\",\n\"Timestamp\":1583719468574,\n\"PublicKey\":\"03D5AD191ADEA2857AC05E1D64075ED911C81CF36CEB8B230B1D68222801B0ADE7\",\n\"Signature\":\"3044022001CE5500C78F310F2627F0B9FA6E2E913DC533B8EC0FAFA0199B5BBF1A517CA802205A714BA53834B85D031AA65AA166641BD52831327DF52998F5C77816E08815DE\"\n}\n\n将账号o5rdqyAP36HG6HTCHbiTNh1GJ7kvKk4Z5m的【公告#4】中引入的属性\"Action\"修改为\"ObjectType\",\n此后【公告】是一个数据对象,而不是一个操作\n新引入属性\"Quote\",用于记录【被引用公告的基本信息】,是一个数组,暂定最多可以引用8条公告,\n本条公告未引用其他公告,所有Quote属性的值是空数组。\n\n\n下面账号o22Zhy8MzQYemARcftajENtfikjbhTNiqg的【公告#1】引用账号obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf的【公告#1】,如下\n{\n\"ObjectType\":101,\n\"Sequence\":1,\n\"PreHash\":\"F4C2EB8A3EBFC7B6D81676D79F928D0E\",\n\"Quote\":[{\"Address\":\"obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf\",\"Sequence\":1,\"Hash\":\"EBEB6524F5F44DC5ED356378C2335D30\"}],\n\"Content\":\"第一条公告:账号创建\",\n\"Timestamp\":1583719817350,\n\"PublicKey\":\"02ECE5CC8C58BB329F5FEADE429938FF65CEF7149F1F62F36FF4DCA37739B07B5D\",\n\"Signature\":\"304402207C4FD9E6C05332F0DCE71C11D9CE4557417A3FA655A7A797EA961A540687C1F9022051B251ABF9CE12FD4FA69F8C3E607438B8D18DDA0B3BE00C6E8B5928F65572F2\"\n}\n\n重点看\n\"Quote\":[\n\t{\n\t\"Address\":\"obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf\",\n\t\"Sequence\":1,\n\t\"Hash\":\"EBEB6524F5F44DC5ED356378C2335D30\"\n\t}\n]\n表明引用了一条【公告】,被引用的公告是由账号obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf发布的序号为1且哈希值为EBEB6524F5F44DC5ED356378C2335D30的【公告】。\n\n\n在个体计算设备本地的执行逻辑是,凡是本地已经存储了的【公告】,其引用的【公告】可以被展示在个体眼前。\n这样就解决了上述3中的问题\n只要关注了账号o22Zhy8MzQYemARcftajENtfikjbhTNiqg,本地客户端可以存储其【公告#1】,\n即便没有关注账号obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf,\n也可以通过【o22Zhy8MzQYemARcftajENtfikjbhTNiqg#1】中的引用,\n去获取并展示【obeTvR9XDbUwquA6JPQhmbgaCCaiFa2rvf#1】\n\n需要注意的有几点:\n1、按照上述设定,引用这个特性是可以无限传递,\n也就是说,【公告Ga】引用Gb,Gb引用Gc,Gc引用Gd...,\n只要获取看到了公告Ga,就可以放行这一些列公告Gb、Gc、Gd...显示在个体眼前\n2、引用的获取和显示,默认均不是自动的,需要个体点击操作才会触发\n3、引用不仅仅是引用,同时也是对【被引用公告】的备份和背书。","Timestamp":1595148457195,"PublicKey":"0216B8875FE7513978CF2167C7AB7A3A6BC1F95E7DE20498980CACB70E51EA207A","Signature":"3045022100FC746A55082478A96BE21A0CAAFC8B007F52A260E5BCBAD69DA6DB77C63339E8022059A10627F0C5808640465DEEAB2595E00F062CE3534F9A9005EB6FE315130260"}

oxo