neo扩展计算系统

因为neogame游戏比赛 催生出的想法

因为neo主链智能合约从响应时间,计算类型,可扩展性,计算成本几个方面都是传统的金融属性。

故neo主链不适合用作游戏逻辑计算

特提出一个neo扩展计算系统

暂定名neonative

该系统特征如下

一,网络模型

该系统放弃neo的网络模型

采用主从分离的网络模型,主节点离线整个系统停顿。

该模型下主节点负责交易的鉴证上链

从节点对交易进行检验

即使发现交易结果不同只是提出警告。

降低安全级别提升性能

二,交易模型

一交易一块,不出空块,无出块时间,主节点收到交易立即出块

放弃utxo模型,仅有一个应用智能合约

采用多链的设计,一组节点直接运行多条链。一号链和二号链的交易不互相等待,可以多线程并发

三 存储模型

每条链有自己的存储系统,不能跨链写入数据,在一号链上执行的交易无法写入二号链的存取区。读取另一条链的存储区需要等待同步。比如主节点执行1号链的交易读取了2号链的存储系统,访问时2号链高度为138。从节点验证到这条交易时就会锁住等待从节点的二号链同步到高度138以上

存储模型不是用简单的key value,加入value的type,实现像json一样的扩展

比如第一层设计为map<string,map>

则每一个key 对应一个map,可直接访问和操作下层map

比如a["xx"]["yy"]=456

四,计算模型

计算模型采用neovm作为入口,但是鼓励用native方法作为扩展

允许从交易中直接上传dll对系统进行升级,也允许直接对主节点停机升级。以上两种方式是等价的,都会作为升级交易广播给从节点。从节点也会对应升级。

主要的计算来自native的 dotnet core dll,支持所有的dotnet core类库。允许在原生扩展中访问外部数据

加载后的native dll,可通过syscall进行访问,不同的dll之间互访也通过syscall

我们将权力和责任一并托付给native插件的开发者,如果native插件中直接或间接使用了随机数或者含有随机性的数据源,就会导致从节点验证总是失败。

验证失败我们只设定为一种警告,如果忽视这些警告就丧失了安全计算的特性

五 加密模型

采用和neo兼容的公私钥体系,不同的是增加白名单机制,发布智能合约需要在管理员的白名单中。调用智能合约需要在智能合约的白名单中(可选)

六 和neo主链的交互

a自带主链监视器,用交易配置监视器。监视器发现主链满足监视条件的交易就往本系统发送一条交易

b.可以向主链发起交易

因为本系统公私钥模型和neo相同,故可以直接发起交易

七 和其他系统的交互

因为native插件支持几乎一切操作,这类交互都通过native插件进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 16,294评论 4 87
  • 无能为力才是最痛苦的吧
    Skylt阅读 1,521评论 0 0
  • 个人情感 高效能人士的七个习惯 时间管理 职业素养 个人:我们与自己的关系 行有不得者 ,反求诸之:任何问题都是自...
    惠子FineYoga阅读 2,118评论 0 0
  • 三十三重天上,日月摇光,烟霞散彩,云雾环绕,仙乐阵阵…… 少顷,叶络与无青便以至天庭。仙门大开,从中率先...
    叶络阅读 1,456评论 0 0
  • 这时候难道还在熬夜,应该是玩手机玩到睡着了还没来得及关吧,哈哈。
    怦然心动_阅读 1,755评论 0 0