Amodule Network技术框架和说明

Amodule Network基于DAG协议解决了数据块臃肿,可视化操作系统、模块化智能合约,为可扩展性提供了有效途径,同时也更易操作,为更多企业甚至个人用户提供快速链改可能。Amodule Network将智能合约的接口进行了集中简化,大大缩短了业务模型设计到实际信息数据上链间的开发周期,降低了开发人员的技术门槛,能够建立和发布各种基于内容相关业务的DAPP,重新定义了应用基础链的标准。

Amodule Network技术框架和说明

  AMO的区块链技术分为四层,存储层,网络层,扩展层和应用层。

存储层用来存储区块链的相关数据,主要运用了leveldb和mongodb两种数据库,通过将leveldb的快读写速度和mongodb成熟稳定的特点相结合,最大限度的优化了存储层代码的运行效率,降低了维护难度,减少了开发成本并且保证了存储层的稳定性。

网络层主要包括了两部分,共识机制和点对点通讯协议。

点对点通讯协议采用了当前区块链最流行的devp2p, devp2p节点间的通信通过TCP来实现。节点可以在任意的端口上自由的发送和接受消息。 Devp2p经过以太坊的长期测试,可以确保网络层面通讯的效率及稳定性。

AMO共识机制采用了PBFT(拜占庭容错算法)。PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。

扩展层主要为智能合约层。智能合约运行在AMO独有的虚拟机上,用沙盒封装起来,并且被完全隔离,也就是说运行在AMO虚拟机内部的代码不能接触到网络、本地的文件系统或者其它本地的进程。AMO虚拟机拟基于JSVM进行扩展开发,支持ECMAScript 5标准,重新定义可以执行的JS代码及可以调用的JS库函数,可通过堆栈结构机器来进行实做。用户通过自己编写新的智能合约,可以自由的发布侧链或者实现各种区块链相关的功能。

应用层为基于电脑或者手机的可以与用户交互的DAPP或者APP。DAPP和APP更高于智能合约层,可架在其之上。企业或用户可通过智能合约进行更高层次的开发。企业或用户也可通过开放的API对系统进行访问。使得企业或用户可以自由的开发,将自己的产品模块化。

部分代码展示:

Amodule Network技术框架和说明

相关接口信息

  P2P协议列表

AMODEVP2P.AMO.MESSAGE_CODES.STATUS

AMODEVP2P.AMO.MESSAGE_CODES.NEW_BLOCK_HASHES

AMODEVP2P.AMO.MESSAGE_CODES.GET_BLOCK_HEADERS

AMODEVP2P.AMO.MESSAGE_CODES.BLOCK_HEADERS

AMODEVP2P.AMO.MESSAGE_CODES.GET_BLOCK_BODIES

AMODEVP2P.AMO.MESSAGE_CODES.BLOCK_BODIES

AMODEVP2P.AMO.MESSAGE_CODES.NEW_BLOCK

AMODEVP2P.AMO.MESSAGE_CODES.TX

AMODEVP2P.AMO.MESSAGE_CODES.GET_NODE_DATA

AMODEVP2P.AMO.MESSAGE_CODES.NODE_DATA

AMODEVP2P.AMO.MESSAGE_CODES.GET_RECEIPTS

AMODEVP2P.AMO.MESSAGE_CODES.RECEIPTS

AMODEVP2P.AMO.MESSAGE_CODES.NODES_IP_SYNC

API接口列表

AMO.version.api js的api版本

AMO.version.node 客户端或节点的版本信息

AMO.version.network 网络协议版本

AMO.isConnected 检查到节点的连接是否存在

AMO.setProvider 设置Provider

AMO.currentProvider 检查是否已经设置过Provider,避免重复设置

AMO.reset 用来重置AMO的状态

AMO.sha3 使用Keccak-256 SHA3算法哈希过的结果

AMO.toHex 需要转化为HEX的值

AMO.toAscii 转换ASCII码字符串

AMO.fromAscii 将任何的ASCII码字符串转为HEX字符串

AMO.toDecimal 转为一个十进制的数字

AMO.fromDecimal 将一个数字,或者字符串形式的数字

AMO.fromAMO 以AMO为单位的数量进行货币转换

AMO.toAMO 按对应货币转为以AMO为单位

AMO.toBigNumber 转为BigNumber

AMO.net.listening 判断是否正在监听网络连接

AMO.net.peerCount 连接节点连上的其它以太坊节点的数量

AMO.defaultAccount 默认的账户地址

AMO.defaultBlock 恢复默认区块设置

AMO.syncing 同步区块

AMO.isSyncing 提供同步开始,更新,停止的回调函数方法

AMO.coinbase 挖矿奖励地址

AMO.mining 验证该节点是否配置挖矿

AMO.hashrate 表示的是当前的每秒的哈希难度

AMO.gasPrice 返回当前的gas价格

AMO.accounts 返回当前节点持有的帐户列表

AMO.blockNumber 返回当前区块号

AMO.register 注册给定地址

AMO.unRegister 取消注册给定地址

AMO.getBalance 获得在指定区块时给定地址的余额

AMO.getStorageAt 获得某个地址指定位置的存储的状态值

AMO.getCode 获取指定地址的代码

AMO.getBlock 返回块号或区块哈希值所对应的区块

AMO.getBlockTransactionCount 返回指定区块的交易数量

AMO.getUncle 返回指定叔块

AMO.getTransaction 返回匹配指定交易哈希值的交易

AMO.getTransactionFromBlock 返回指定区块的指定序号的交易

AMO.getTransactionReceipt 通过交易哈希返回交易的收据

AMO.getTransactionCount 返回指定地址发起的交易数

AMO.sendTransaction 发送一个交易到网络

AMO.sendRawTransaction 发送一个已经签名的交易

AMO.sign 签名后的数据

AMO.call 函数调用返回的值

AMO.estimateGas 根据交易或事件返回使用的Gas

AMO.filter 事件监听器的返回结果

AMO.contract 创建一个合约对象用来在某个地址上初始化合约

AMO.getCompilers 返回可用的编译器

AMO.compile.solidity 编译Solidity源代码

AMO.compile.lll 编译LLL源代码

AMO.compile.serpent 编译serpent源代码

AMO.namereg 返回一个global的对象

AMO.db.putString 以一个本地数据库的级别存储一个字符串时使用

AMO.db.getString 本地的数据库中返回一个字符串

AMO.db.putHex 在本地的数据库中存储二进制数据

AMO.db.getHex返回本地的leveldb中的二进制数据

AMO.generateWalletKeys 自动生成私钥,公钥和地址

AMO.getTransactions 获取交易

AMO.signedTransaction 签名交易

AMO.getKeysFromPrivate通过私钥生成地址

AMO.getChainHeight 获取区块高度

AMO.getBlockByHeight获取某一个高度下所有交易

AMO.getTransactions通过钱包地址获取交易详情

AMO.getWalletKeys 获取钱包信息

AMO.getTokenChainSize 获取Token链信息

AMO.getNodeInfo 获取节点信息

AMO.setPOW 设置POW状态

AMO.startNetworkEvent 设置Network事件类型

AMO.getBlockByHash 通过Hash获取区块

AMO.getWholeTokenBlockchain获取整个Token链

AMO.setAddress 设置账户地址

Amodule Network是一个商业级分布式智能合约模块网络,打造一个商业级分布式智能合约模块网络,具备高速交易、模块化智能合约和无限可扩展性等特性,解决现存区块链技术的可拓展性和技术门槛相对较高的问题,重新定义应用基础链的标准。

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2019-11-15
Amodule Network技术框架和说明
Amodule Network基于DAG协议解决了数据块臃肿,可视化操作系统、模块化智能合约,为可扩展性提供了有效途径,同时也更易操作,为更多企业甚至个人用户提

长按扫码 阅读全文