Amodule Network技術(shù)框架和說明

Amodule Network基于DAG協(xié)議解決了數(shù)據(jù)塊臃腫,可視化操作系統(tǒng)、模塊化智能合約,為可擴(kuò)展性提供了有效途徑,同時(shí)也更易操作,為更多企業(yè)甚至個(gè)人用戶提供快速鏈改可能。Amodule Network將智能合約的接口進(jìn)行了集中簡化,大大縮短了業(yè)務(wù)模型設(shè)計(jì)到實(shí)際信息數(shù)據(jù)上鏈間的開發(fā)周期,降低了開發(fā)人員的技術(shù)門檻,能夠建立和發(fā)布各種基于內(nèi)容相關(guān)業(yè)務(wù)的DAPP,重新定義了應(yīng)用基礎(chǔ)鏈的標(biāo)準(zhǔn)。

Amodule Network技術(shù)框架和說明

  AMO的區(qū)塊鏈技術(shù)分為四層,存儲(chǔ)層,網(wǎng)絡(luò)層,擴(kuò)展層和應(yīng)用層。

存儲(chǔ)層用來存儲(chǔ)區(qū)塊鏈的相關(guān)數(shù)據(jù),主要運(yùn)用了leveldb和mongodb兩種數(shù)據(jù)庫,通過將leveldb的快讀寫速度和mongodb成熟穩(wěn)定的特點(diǎn)相結(jié)合,最大限度的優(yōu)化了存儲(chǔ)層代碼的運(yùn)行效率,降低了維護(hù)難度,減少了開發(fā)成本并且保證了存儲(chǔ)層的穩(wěn)定性。

網(wǎng)絡(luò)層主要包括了兩部分,共識(shí)機(jī)制和點(diǎn)對點(diǎn)通訊協(xié)議。

點(diǎn)對點(diǎn)通訊協(xié)議采用了當(dāng)前區(qū)塊鏈最流行的devp2p, devp2p節(jié)點(diǎn)間的通信通過TCP來實(shí)現(xiàn)。節(jié)點(diǎn)可以在任意的端口上自由的發(fā)送和接受消息。 Devp2p經(jīng)過以太坊的長期測試,可以確保網(wǎng)絡(luò)層面通訊的效率及穩(wěn)定性。

AMO共識(shí)機(jī)制采用了PBFT(拜占庭容錯(cuò)算法)。PBFT是一種狀態(tài)機(jī)副本復(fù)制算法,即服務(wù)作為狀態(tài)機(jī)進(jìn)行建模,狀態(tài)機(jī)在分布式系統(tǒng)的不同節(jié)點(diǎn)進(jìn)行副本復(fù)制。每個(gè)狀態(tài)機(jī)的副本都保存了服務(wù)的狀態(tài),同時(shí)也實(shí)現(xiàn)了服務(wù)的操作。

擴(kuò)展層主要為智能合約層。智能合約運(yùn)行在AMO獨(dú)有的虛擬機(jī)上,用沙盒封裝起來,并且被完全隔離,也就是說運(yùn)行在AMO虛擬機(jī)內(nèi)部的代碼不能接觸到網(wǎng)絡(luò)、本地的文件系統(tǒng)或者其它本地的進(jìn)程。AMO虛擬機(jī)擬基于JSVM進(jìn)行擴(kuò)展開發(fā),支持ECMAScript 5標(biāo)準(zhǔn),重新定義可以執(zhí)行的JS代碼及可以調(diào)用的JS庫函數(shù),可通過堆棧結(jié)構(gòu)機(jī)器來進(jìn)行實(shí)做。用戶通過自己編寫新的智能合約,可以自由的發(fā)布側(cè)鏈或者實(shí)現(xiàn)各種區(qū)塊鏈相關(guān)的功能。

應(yīng)用層為基于電腦或者手機(jī)的可以與用戶交互的DAPP或者APP。DAPP和APP更高于智能合約層,可架在其之上。企業(yè)或用戶可通過智能合約進(jìn)行更高層次的開發(fā)。企業(yè)或用戶也可通過開放的API對系統(tǒng)進(jìn)行訪問。使得企業(yè)或用戶可以自由的開發(fā),將自己的產(chǎn)品模塊化。

部分代碼展示:

Amodule Network技術(shù)框架和說明

相關(guān)接口信息

  P2P協(xié)議列表

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 客戶端或節(jié)點(diǎn)的版本信息

AMO.version.network 網(wǎng)絡(luò)協(xié)議版本

AMO.isConnected 檢查到節(jié)點(diǎn)的連接是否存在

AMO.setProvider 設(shè)置Provider

AMO.currentProvider 檢查是否已經(jīng)設(shè)置過Provider,避免重復(fù)設(shè)置

AMO.reset 用來重置AMO的狀態(tài)

AMO.sha3 使用Keccak-256 SHA3算法哈希過的結(jié)果

AMO.toHex 需要轉(zhuǎn)化為HEX的值

AMO.toAscii 轉(zhuǎn)換ASCII碼字符串

AMO.fromAscii 將任何的ASCII碼字符串轉(zhuǎn)為HEX字符串

AMO.toDecimal 轉(zhuǎn)為一個(gè)十進(jìn)制的數(shù)字

AMO.fromDecimal 將一個(gè)數(shù)字,或者字符串形式的數(shù)字

AMO.fromAMO 以AMO為單位的數(shù)量進(jìn)行貨幣轉(zhuǎn)換

AMO.toAMO 按對應(yīng)貨幣轉(zhuǎn)為以AMO為單位

AMO.toBigNumber 轉(zhuǎn)為BigNumber

AMO.net.listening 判斷是否正在監(jiān)聽網(wǎng)絡(luò)連接

AMO.net.peerCount 連接節(jié)點(diǎn)連上的其它以太坊節(jié)點(diǎn)的數(shù)量

AMO.defaultAccount 默認(rèn)的賬戶地址

AMO.defaultBlock 恢復(fù)默認(rèn)區(qū)塊設(shè)置

AMO.syncing 同步區(qū)塊

AMO.isSyncing 提供同步開始,更新,停止的回調(diào)函數(shù)方法

AMO.coinbase 挖礦獎(jiǎng)勵(lì)地址

AMO.mining 驗(yàn)證該節(jié)點(diǎn)是否配置挖礦

AMO.hashrate 表示的是當(dāng)前的每秒的哈希難度

AMO.gasPrice 返回當(dāng)前的gas價(jià)格

AMO.accounts 返回當(dāng)前節(jié)點(diǎn)持有的帳戶列表

AMO.blockNumber 返回當(dāng)前區(qū)塊號(hào)

AMO.register 注冊給定地址

AMO.unRegister 取消注冊給定地址

AMO.getBalance 獲得在指定區(qū)塊時(shí)給定地址的余額

AMO.getStorageAt 獲得某個(gè)地址指定位置的存儲(chǔ)的狀態(tài)值

AMO.getCode 獲取指定地址的代碼

AMO.getBlock 返回塊號(hào)或區(qū)塊哈希值所對應(yīng)的區(qū)塊

AMO.getBlockTransactionCount 返回指定區(qū)塊的交易數(shù)量

AMO.getUncle 返回指定叔塊

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

AMO.getTransactionFromBlock 返回指定區(qū)塊的指定序號(hào)的交易

AMO.getTransactionReceipt 通過交易哈希返回交易的收據(jù)

AMO.getTransactionCount 返回指定地址發(fā)起的交易數(shù)

AMO.sendTransaction 發(fā)送一個(gè)交易到網(wǎng)絡(luò)

AMO.sendRawTransaction 發(fā)送一個(gè)已經(jīng)簽名的交易

AMO.sign 簽名后的數(shù)據(jù)

AMO.call 函數(shù)調(diào)用返回的值

AMO.estimateGas 根據(jù)交易或事件返回使用的Gas

AMO.filter 事件監(jiān)聽器的返回結(jié)果

AMO.contract 創(chuàng)建一個(gè)合約對象用來在某個(gè)地址上初始化合約

AMO.getCompilers 返回可用的編譯器

AMO.compile.solidity 編譯Solidity源代碼

AMO.compile.lll 編譯LLL源代碼

AMO.compile.serpent 編譯serpent源代碼

AMO.namereg 返回一個(gè)global的對象

AMO.db.putString 以一個(gè)本地?cái)?shù)據(jù)庫的級別存儲(chǔ)一個(gè)字符串時(shí)使用

AMO.db.getString 本地的數(shù)據(jù)庫中返回一個(gè)字符串

AMO.db.putHex 在本地的數(shù)據(jù)庫中存儲(chǔ)二進(jìn)制數(shù)據(jù)

AMO.db.getHex返回本地的leveldb中的二進(jìn)制數(shù)據(jù)

AMO.generateWalletKeys 自動(dòng)生成私鑰,公鑰和地址

AMO.getTransactions 獲取交易

AMO.signedTransaction 簽名交易

AMO.getKeysFromPrivate通過私鑰生成地址

AMO.getChainHeight 獲取區(qū)塊高度

AMO.getBlockByHeight獲取某一個(gè)高度下所有交易

AMO.getTransactions通過錢包地址獲取交易詳情

AMO.getWalletKeys 獲取錢包信息

AMO.getTokenChainSize 獲取Token鏈信息

AMO.getNodeInfo 獲取節(jié)點(diǎn)信息

AMO.setPOW 設(shè)置POW狀態(tài)

AMO.startNetworkEvent 設(shè)置Network事件類型

AMO.getBlockByHash 通過Hash獲取區(qū)塊

AMO.getWholeTokenBlockchain獲取整個(gè)Token鏈

AMO.setAddress 設(shè)置賬戶地址

Amodule Network是一個(gè)商業(yè)級分布式智能合約模塊網(wǎng)絡(luò),打造一個(gè)商業(yè)級分布式智能合約模塊網(wǎng)絡(luò),具備高速交易、模塊化智能合約和無限可擴(kuò)展性等特性,解決現(xiàn)存區(qū)塊鏈技術(shù)的可拓展性和技術(shù)門檻相對較高的問題,重新定義應(yīng)用基礎(chǔ)鏈的標(biāo)準(zhǔn)。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-11-15
Amodule Network技術(shù)框架和說明
Amodule Network基于DAG協(xié)議解決了數(shù)據(jù)塊臃腫,可視化操作系統(tǒng)、模塊化智能合約,為可擴(kuò)展性提供了有效途徑,同時(shí)也更易操作,為更多企業(yè)甚至個(gè)人用戶提

長按掃碼 閱讀全文