neo扩展计算系统

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

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

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

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

暂定名neonative

该系统特征如下

一,网络模型

该系统放弃neo的网络模型

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

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

从节点对交易进行检验

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

降低安全级别提升性能

二,交易模型

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

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

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

三 存储模型

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

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

比如第一层设计为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插件进行

你可能感兴趣的:(neo扩展计算系统)