Amodule Network技术框架和说明

  Amodule Network依据DAG协议处理了数据块臃肿,可视化操作体系、模块化智能合约,为可扩展性供给了有效途径,一起也更易操作,为更多企业乃至个人用户供给快速链改或许。Amodule Network将智能合约的接口进行了会集简化,大大缩短了事务模型规划到实践信息数据上链间的开发周期,降低了开发人员的技能门槛,能够树立和发布各种依据内容相关事务的DAPP,从头界说了运用根底链的规范。tlI

tlI

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

  存储层用来存储区块链的相关数据,首要运用了leveldb和mongodb两种数据库,经过将leveldb的快读写速度和mongodb老练安稳的特色相结合,最大极限的优化了存储层代码的运转功率,降低了保护难度,减少了开发本钱而且保证了存储层的安稳性。tlI

  网络层首要包含了两部分,一致机制和点对点通讯协议。tlI

  点对点通讯协议选用了当时区块链最盛行的devp2p, devp2p节点间的通讯经过TCP来完成。节点能够在恣意的端口上自在的发送和承受音讯。 Devp2p经过以太坊的长时间测验,能够保证网络层面通讯的功率及安稳性。tlI

  AMO一致机制选用了PBFT(拜占庭容错算法)。PBFT是一种状况机副本仿制算法,即服务作为状况机进行建模,状况机在分布式体系的不同节点进行副本仿制。每个状况机的副本都保存了服务的状况,一起也完成了服务的操作。tlI

  扩展层首要为智能合约层。智能合约运转在AMO独有的虚拟机上,用沙盒封装起来,而且被彻底阻隔,也就是说运转在AMO虚拟机内部的代码不能接触到网络、本地的文件体系或许其它本地的进程。AMO虚拟机拟依据JSVM进行扩展开发,支撑ECMAScript 5规范,从头界说能够履行的JS代码及能够调用的JS库函数,可经过仓库结构机器来进行实做。用户经过自己编写新的智能合约,能够自在的发布侧链或许完成各种区块链相关的功用。tlI

  运用层为依据电脑或许手机的能够与用户交互的DAPP或许APP。DAPP和APP更高于智能合约层,可架在其之上。企业或用户可经过智能合约进行更高层次的开发。企业或用户也可经过敞开的API对体系进行拜访。使得企业或用户能够自在的开发,将自己的产品模块化。tlI

  部分代码展现:tlI

tlI

  相关接口信息tlI

  P2P协议列表tlI

  AMODEVP2P.AMO.MESSAGE_CODES.STATUStlI

  AMODEVP2P.AMO.MESSAGE_CODES.NEW_BLOCK_HASHEStlI

  AMODEVP2P.AMO.MESSAGE_CODES.GET_BLOCK_HEADERStlI

  AMODEVP2P.AMO.MESSAGE_CODES.BLOCK_HEADERStlI

  AMODEVP2P.AMO.MESSAGE_CODES.GET_BLOCK_BODIEStlI

  AMODEVP2P.AMO.MESSAGE_CODES.BLOCK_BODIEStlI

  AMODEVP2P.AMO.MESSAGE_CODES.NEW_BLOCKtlI

  AMODEVP2P.AMO.MESSAGE_CODES.TXtlI

  AMODEVP2P.AMO.MESSAGE_CODES.GET_NODE_DATAtlI

  AMODEVP2P.AMO.MESSAGE_CODES.NODE_DATAtlI

  AMODEVP2P.AMO.MESSAGE_CODES.GET_RECEIPTStlI

  AMODEVP2P.AMO.MESSAGE_CODES.RECEIPTStlI

  AMODEVP2P.AMO.MESSAGE_CODES.NODES_IP_SYNCtlI

  API接口列表tlI

  AMO.version.api                            js的api版别tlI

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

  AMO.version.network                   网络协议版别tlI

  AMO.isConnected                         查看到节点的衔接是否存在tlI

  AMO.setProvider                           设置ProvidertlI

  AMO.currentProvider                    查看是否现已设置过Provider,防止重复设置tlI

  AMO.reset                                     用来重置AMO的状况tlI

  AMO.sha3                                     运用Keccak-256 SHA3算法哈希过的成果tlI

  AMO.toHex                                   需求转化为HEX的值tlI

  AMO.toAscii                                  转化ASCII码字符串tlI

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

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

  AMO.fromDecimal                        将一个数字,或许字符串方式的数字tlI

  AMO.fromAMO                             以AMO为单位的数量进行钱银转化tlI

  AMO.toAMO                                  按对应钱银转为以AMO为单位tlI

  AMO.toBigNumber                        转为BigNumbertlI

  AMO.net.listening                          判别是否正在监听网络衔接tlI

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

  AMO.defaultAccount                     默许的账户地址tlI

  AMO.defaultBlock                          康复默许区块设置tlI

  AMO.syncing                                  同步区块tlI

  AMO.isSyncing                               供给同步开端,更新,中止的回调函数办法tlI

  AMO.coinbase                                挖矿奖赏地址tlI

  AMO.mining                                   验证该节点是否装备挖矿tlI

  AMO.hashrate                                表明的是当时的每秒的哈希难度tlI

  AMO.gasPrice                                 回来当时的gas价格tlI

  AMO.accounts                                回来当时节点持有的帐户列表tlI

  AMO.blockNumber                        回来当时区块号tlI

  AMO.register                                  注册给定地址tlI

  AMO.unRegister                             撤销注册给定地址tlI

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

  AMO.getStorageAt                         取得某个地址指定方位的存储的状况值tlI

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

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

  AMO.getBlockTransactionCount    回来指定区块的买卖数量tlI

  AMO.getUncle                                回来指定叔块tlI

  AMO.getTransaction                       回来匹配指定买卖哈希值的买卖tlI

  AMO.getTransactionFromBlock      回来指定区块的指定序号的买卖tlI

  AMO.getTransactionReceipt           经过买卖哈希回来买卖的收据tlI

  AMO.getTransactionCount             回来指定地址建议的买卖数tlI

  AMO.sendTransaction                     发送一个买卖到网络tlI

  AMO.sendRawTransaction              发送一个现已签名的买卖tlI

  AMO.sign                                        签名后的数据tlI

  AMO.call                                         函数调用回来的值tlI

  AMO.estimateGas                           依据买卖或事情回来运用的GastlI

  AMO.filter                                       事情监听器的回来成果tlI

  AMO.contract                                 创立一个合约目标用来在某个地址上初始化合约tlI

  AMO.getCompilers                         回来可用的编译器tlI

  AMO.compile.solidity                     编译Solidity源代码tlI

  AMO.compile.lll                              编译LLL源代码tlI

  AMO.compile.serpent                     编译serpent源代码tlI

  AMO.namereg                                回来一个global的目标tlI

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

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

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

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

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

  AMO.getTransactions                     获取买卖tlI

  AMO.signedTransaction                 签名买卖tlI

  AMO.getKeysFromPrivate              经过私钥生成地址tlI

  AMO.getChainHeight                     获取区块高度tlI

  AMO.getBlockByHeight                 获取某一个高度下一切买卖tlI

  AMO.getTransactions                    经过钱包地址获取买卖概况tlI

  AMO.getWalletKeys                       获取钱包信息tlI

  AMO.getTokenChainSize               获取Token链信息tlI

  AMO.getNodeInfo                         获取节点信息tlI

  AMO.setPOW                                 设置POW状况tlI

  AMO.startNetworkEvent                设置Network事情类型tlI

  AMO.getBlockByHash                     经过Hash获取区块tlI

  AMO.getWholeTokenBlockchain    获取整个Token链tlI

  AMO.setAddress                             设置账户地址tlI

  Amodule Network是一个商业级分布式智能合约模块网络,打造一个商业级分布式智能合约模块网络,具有高速买卖、模块化智能合约和无限可扩展性等特性,处理现存区块链技能的可拓展性和技能门槛相对较高的问题,从头界说运用根底链的规范。tlI

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处://terrorinorlando.com/jingyan/533.html