Amodule Network基于DAG协议解决了数据块臃肿,可视化操作系统、模块化智能合约,为可扩展性提供了有效途径,同时也更易操作,为更多企业甚至个人用户提供快速链改可能。Amodule Network将智能合约的接口进行了集中简化,大大缩短了业务模型设计到实际信息数据上链间的开发周期,降低了开发人员的技术门槛,能够建立和发布各种基于内容相关业务的DAPP,重新定义了应用基础链的标准。 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对系统进行访问。使得企业或用户可以自由的开发,将自己的产品模块化。 部分代码展示: 相关接口信息 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是一个商业级分布式智能合约模块网络,打造一个商业级分布式智能合约模块网络,具备高速交易、模块化智能合约和无限可扩展性等特性,解决现存区块链技术的可拓展性和技术门槛相对较高的问题,重新定义应用基础链的标准。 |
免责声明:本网站内容由网友自行在页面发布,上传者应自行负责所上传内容涉及的法律责任,本网站对内容真实性、版权等概不负责,亦不承担任何法律责任。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。