|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924 |
- # 网关API
-
- [账本](#2-账本)
- - [获取账本总数](#21-获取账本总数)
- - [获取账本列表](#22-获取账本列表)
- - [获取账本详细信息](#23-获取账本详细信息)
- - [获取账本参与方总数](#24-获取账本参与方总数)
- - [获取账本参与方列表](#25-获取账本参与方列表)
- - [获取账本元数据信息](#26-获取账本元数据信息)
- - [获取账本初始化配置信息](#27-获取账本初始化配置信息)
- - [获取账本管理数据信息](#28-获取账本管理数据信息)
-
- [区块](#3-区块)
- - [获取最新区块](#31-获取最新区块)
- - [根据区块哈希获取区块详细信息](#32-根据区块哈希获取区块详细信息)
- - [根据区块高度获取区块详细信息](#33-根据区块高度获取区块详细信息)
-
- [交易](#4-交易)
- - [获取账本交易总数](#41-获取账本交易总数)
- - [根据区块高度查询交易数量](#42-根据区块高度查询交易数量)
- - [根据区块哈希查询交易数量](#43-根据区块哈希查询交易数量)
- - [根据区块高度查询区块内的交易数量](#44-根据区块高度查询区块内的交易数量)
- - [根据区块哈希查询区块内的交易数量](#45-根据区块哈希查询区块内的交易数量)
- - [获取指定区块高度的交易列表](#46-获取指定区块高度的交易列表)
- - [获取指定哈希的区块的交易列表](#47-获取指定哈希的区块的交易列表)
- - [获取交易详细信息](#48-获取交易详细信息)
-
- [用户](#5-用户)
- - [获取用户总数](#51-获取用户总数)
- - [获取用户列表](#52-获取用户列表)
- - [获取用户详细信息](#53-获取用户详细信息)
- - [获取指定高度的区块的用户总数](#54-获取指定高度的区块的用户总数)
- - [获取指定哈希的区块的用户总数](#55-获取指定哈希的区块的用户总数)
- - [根据区块高度查询区块内的用户数量](#56-根据区块高度查询区块内的用户数量)
- - [根据区块哈希查询区块内的用户数量](#57-根据区块哈希查询区块内的用户数量)
- - [查询最新区块新增用户数量](#58-查询最新区块新增用户数量)
-
- [角色权限](#6-角色权限)
- - [根据角色获取权限信息](#61-根据角色获取权限信息)
- - [根据用户获取权限信息](#62-根据用户获取权限信息)
-
- [数据账户](#7-数据账户)
- - [获取账户列表](#71-获取账户列表)
- - [获取账户详细信息](#72-获取账户详细信息)
- - [获取账户总数](#73-获取账户总数)
- - [获取指定高度的区块的数据账户总数](#74-获取指定高度的区块的数据账户总数)
- - [获取指定哈希的区块的数据账户总数](#75-获取指定哈希的区块的数据账户总数)
- - [根据区块高度查询区块内的数据账户数量](#76-根据区块高度查询区块内的数据账户数量)
- - [根据区块哈希查询区块内的数据账户数量](#77-根据区块哈希查询区块内的数据账户数量)
- - [获取某数据账户KV总数](#78-获取某数据账户KV总数)
- - [获取某数据账户KV详情](#79-获取某数据账户KV详情)
- - [获取某数据账户KV详情](#710-获取某数据账户KV详情)
- - [获取某数据账户KV整个历史详情](#711-获取某数据账户KV整个历史详情)
-
- [合约](#8-合约)
- - [获取合约总数](#81-获取合约总数)
- - [获取指定区块高度的合约总数](#82-获取指定区块高度的合约总数)
- - [获取指定区块哈希的合约总数](#83-获取指定区块哈希的合约总数)
- - [根据区块高度查询区块内的合约总数](#84-根据区块高度查询区块内的合约总数)
- - [根据区块哈希查询区块内的合约总数](#85-根据区块哈希查询区块内的合约总数)
- - [获取合约列表](#86-获取合约列表)
- - [获取合约详细信息](#87-获取合约详细信息)
-
- [事件](#9-用户自定义事件)
-
- - [获取事件账户列表](#91-获取事件账户列表)
- - [获取事件账户](#92-获取事件账户)
- - [获取事件账户总数](#93-获取事件账户总数)
- - [获取事件名数量](#94-获取事件名数量)
- - [获取事件名列表](#95-获取事件名列表)
- - [获取最新事件](#96-获取最新事件)
- - [获取事件数量](#97-获取事件数量)
- - [获取事件列表](#98-获取事件列表)
-
- ## 1 API调用说明
-
- 该文档内的所有api的调用成功和失败均按照以下规则
-
- ### 1.1 成功
-
- ```json
- {
- "data": ...,
- "success": true
- }
- ```
-
- 说明
-
- - success 值为 true 表明api调用成功
- - data 为返回的数据,具体数据类型参考具体的api说明
-
- ### 1.2 失败
-
- ```json
- {
- "error": {
- "errorCode": 5000,
- "errorMessage": "未预期的异常! --Unsupported access ledger[6Gw3cK4uazegy4HjoaM81ck9NgYLNoKyBMb7a1TK1jt3d] !"
- },
- "success": false
- }
-
- [comment]: <> (```)
-
- 说明
-
- - success 值为 false 表明api调用成功
- - errorCode 为异常代码
- - errorMessage 为错误提示
-
- ## 2 账本
-
- ### 2.1 获取账本总数
-
- ```http
- GET /ledgers/count
- ```
-
- #### 参数
- 无
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 2,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|账本总数|
-
-
- ### 2.2 获取账本列表
-
- ```http
- GET /ledgers
- ```
-
- #### 参数
- 无
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp"
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|账本哈希列表|
-
- ### 2.3 获取账本详细信息
-
- ```http
- GET /ledgers/{ledger}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "hash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp",
- "latestBlockHeight" : 0,
- "latestBlockHash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp"
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|账本信息|
- |hash|账本哈希|
- |latestBlockHash | 最新区块哈希 |
- |latestBlockHeight| 最新账本高度 |
-
-
- ### 2.4 获取账本参与方总数
-
- ```http
- GET /ledgers/{ledger}/participants/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/participants/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 4,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|账本参与方总数|
-
-
- ### 2.5 获取账本参与方列表
-
- ```http
- GET /ledgers/{ledger}/participants
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/participants
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "pubKey" : "7VeRFF1ednwhrFoe5cngKwPUJ2N4iFKD9Jt53GxSCc1MmPQ6",
- "participantNodeState" : "CONSENSUS",
- "id" : 2,
- "address" : {
- "value" : "LdeNwsiuo7n6HULWhNKc87PBXJXAfGKFon9RE"
- },
- "name" : "2"
- },
- {
- "participantNodeState" : "CONSENSUS",
- "pubKey" : "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "id" : 1,
- "name" : "1",
- "address" : {
- "value" : "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- }
- },
- {
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "participantNodeState" : "CONSENSUS",
- "address" : {
- "value" : "LdeNyibeafrAQXgHjBxgQxoLbna6hL4BcXZiw"
- },
- "name" : "0",
- "id" : 0
- },
- {
- "id" : 3,
- "address" : {
- "value" : "LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6"
- },
- "name" : "3",
- "pubKey" : "7VeRGE4V9MR7HgAqTrkxGvJvaaKRZ3fAjHUjYzpNBGcjfAvr",
- "participantNodeState" : "CONSENSUS"
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |id|参与方唯一标识|
- |name|参与方名称|
- |address.value|参与方地址|
- |pubKey|参与方公钥|
- |participantNodeState|参与方状态|
-
- `ParticipantNodeState` 参与方状态:
-
- - `READY` 就绪,在此状态下,参与方的账户可以作为网关节点接入终端的交易请求
- - `CONSENSUS` 共识,在此状态下,参与方的账户可以作为共识节点参与共识,也可以作为网关节点接入终端的交易请求
- - `DEACTIVATED` 停用,在此状态下,参与方的账户既不能作为共识节点参与共识,也不能作为网关节点接入终端的交易请求
-
- ### 2.6 获取账本元数据信息
-
- ```http
- GET /ledgers/{ledger}/metadata
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/metadata
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "participantsHash" : "j5qzkZgpGMczBDNKXRGJdyPTndkxPvB7Gdrfiqy6LvG7P5",
- "userRolesHash" : "j5rggjQQtcjMTSwxFyDedcxPSxVVfjAB3khJDvgdiGFhiB",
- "seed" : "NiSpjQVYRMMEA+1bnyU2eA==",
- "settingsHash" : "j5iNkXJptLJrJcFL1YJpuvbJCh6H3iioBNJG7QKPESUUif",
- "rolePrivilegesHash" : "j5hBCfTVv77mTyM5WHoGnw1cezgzB3QDqojqjhg5qmuECn",
- "ledgerStructureVersion" : 0
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |seed|账本生成种子|
- |participantsHash|成员数据集哈希|
- |userRolesHash|用户角色集哈希|
- |settingsHash|配置数据集哈希|
- |rolePrivilegesHash|角色权限数据集哈希|
- |ledgerStructureVersion|账本结构版本|
-
-
- ### 2.7 获取账本初始化配置信息
-
- ```http
- GET /ledgers/{ledger}/settings
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/settings
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": {
- "ledgerStructureVersion": 0,
- "participantsHash": "j5qzkZgpGMczBDNKXRGJdyPTndkxPvB7Gdrfiqy6LvG7P5",
- "seed": "3624a98d-055844c3-0403ed5b-9f253678",
- "consensusProtocol": "com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider",
- "consensusSettings": {
- "systemConfigs": [
- {
- "name": "system.bft",
- "value": "true"
- },
- {
- "value": "true",
- "name": "system.communication.defaultkeys"
- },
- {
- "value": "500000",
- "name": "system.communication.inQueueSize"
- },
- {
- "value": "500000",
- "name": "system.communication.outQueueSize"
- },
- {
- "name": "system.communication.send.retryCount",
- "value": "100"
- },
- {
- "name": "system.communication.send.retryInterval",
- "value": "2000"
- },
- {
- "name": "system.communication.useMACs",
- "value": "1"
- },
- {
- "name": "system.communication.useSenderThread",
- "value": "true"
- },
- {
- "value": "0",
- "name": "system.communication.useSignatures"
- },
- {
- "value": "0",
- "name": "system.debug"
- },
- {
- "value": "0,1,2,3",
- "name": "system.initial.view"
- },
- {
- "name": "system.servers.f",
- "value": "1"
- },
- {
- "value": "4",
- "name": "system.servers.num"
- },
- {
- "value": "true",
- "name": "system.shutdownhook"
- },
- {
- "name": "system.totalordermulticast.checkpoint_period",
- "value": "1000"
- },
- {
- "name": "system.totalordermulticast.checkpoint_to_disk",
- "value": "false"
- },
- {
- "value": "120000",
- "name": "system.totalordermulticast.global_checkpoint_period"
- },
- {
- "name": "system.totalordermulticast.highMark",
- "value": "10000"
- },
- {
- "name": "system.totalordermulticast.log",
- "value": "true"
- },
- {
- "value": "false",
- "name": "system.totalordermulticast.log_parallel"
- },
- {
- "name": "system.totalordermulticast.log_to_disk",
- "value": "true"
- },
- {
- "name": "system.totalordermulticast.maxbatchsize",
- "value": "2000"
- },
- {
- "value": "10",
- "name": "system.totalordermulticast.nonces"
- },
- {
- "value": "10",
- "name": "system.totalordermulticast.revival_highMark"
- },
- {
- "name": "system.totalordermulticast.state_transfer",
- "value": "true"
- },
- {
- "name": "system.totalordermulticast.sync_ckp",
- "value": "false"
- },
- {
- "value": "false",
- "name": "system.totalordermulticast.sync_log"
- },
- {
- "value": "3000000",
- "name": "system.totalordermulticast.timeTolerance"
- },
- {
- "name": "system.totalordermulticast.timeout",
- "value": "60000"
- },
- {
- "name": "system.totalordermulticast.timeout_highMark",
- "value": "200"
- },
- {
- "value": "false",
- "name": "system.totalordermulticast.verifyTimestamps"
- },
- {
- "name": "system.ttp.id",
- "value": "2001"
- }
- ],
- "viewId": 0,
- "nodes": [
- {
- "id": 0,
- "networkAddress": {
- "host": "127.0.0.1",
- "port": 10080,
- "secure": false
- },
- "pubKey": "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "address": "LdeNyibeafrAQXgHjBxgQxoLbna6hL4BcXZiw"
- },
- {
- "pubKey": "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "address": "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY",
- "id": 1,
- "networkAddress": {
- "host": "127.0.0.1",
- "port": 10082,
- "secure": false
- }
- },
- {
- "id": 2,
- "networkAddress": {
- "host": "127.0.0.1",
- "port": 10084,
- "secure": false
- },
- "address": "LdeNwsiuo7n6HULWhNKc87PBXJXAfGKFon9RE",
- "pubKey": "7VeRFF1ednwhrFoe5cngKwPUJ2N4iFKD9Jt53GxSCc1MmPQ6"
- },
- {
- "networkAddress": {
- "host": "127.0.0.1",
- "port": 10086,
- "secure": false
- },
- "id": 3,
- "pubKey": "7VeRGE4V9MR7HgAqTrkxGvJvaaKRZ3fAjHUjYzpNBGcjfAvr",
- "address": "LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6"
- }
- ]
- },
- "cryptoSetting": {
- "supportedProviders": [
- {
- "algorithms": [
- {
- "name": "AES",
- "code": -32230
- },
- {
- "name": "ED25519",
- "code": 16661
- },
- {
- "code": 16662,
- "name": "ECDSA"
- },
- {
- "name": "RSA",
- "code": -16105
- },
- {
- "name": "RIPEMD160",
- "code": 8217
- },
- {
- "name": "SHA256",
- "code": 8216
- },
- {
- "name": "JVM-SECURE-RANDOM",
- "code": 4123
- }
- ],
- "name": "com.jd.blockchain.crypto.service.classic.ClassicCryptoService"
- },
- {
- "name": "com.jd.blockchain.crypto.service.sm.SMCryptoService",
- "algorithms": [
- {
- "code": -16126,
- "name": "SM2"
- },
- {
- "name": "SM3",
- "code": 8195
- },
- {
- "name": "SM4",
- "code": -32252
- }
- ]
- }
- ],
- "hashAlgorithm": 8216,
- "autoVerifyHash": false
- },
- "participantNodes": [
- {
- "participantNodeState": "CONSENSUS",
- "pubKey": "7VeRFF1ednwhrFoe5cngKwPUJ2N4iFKD9Jt53GxSCc1MmPQ6",
- "address": {
- "value": "LdeNwsiuo7n6HULWhNKc87PBXJXAfGKFon9RE"
- },
- "name": "2",
- "id": 2
- },
- {
- "id": 1,
- "participantNodeState": "CONSENSUS",
- "pubKey": "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "address": {
- "value": "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- },
- "name": "1"
- },
- {
- "id": 0,
- "address": {
- "value": "LdeNyibeafrAQXgHjBxgQxoLbna6hL4BcXZiw"
- },
- "name": "0",
- "participantNodeState": "CONSENSUS",
- "pubKey": "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn"
- },
- {
- "id": 3,
- "participantNodeState": "CONSENSUS",
- "pubKey": "7VeRGE4V9MR7HgAqTrkxGvJvaaKRZ3fAjHUjYzpNBGcjfAvr",
- "address": {
- "value": "LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6"
- },
- "name": "3"
- }
- ]
- },
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |ledgerStructureVersion|账本种子信息|
- |participantsHash|参与方数据集哈希|
- |seed|账本种子信息|
- |consensusProtocol|共识协议,以字符串方式显示|
- |consensusSettings|共识配置|
- |cryptoSetting|加密算法配置|
- |participantNodes|参与方节点信息|
-
- ### 2.8 获取账本管理数据信息
-
- ```http
- GET /ledgers/{ledger}/admininfo
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/admininfo
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : {
- "participants" : [
- {
- "id" : 2,
- "pubKey" : "7VeRFF1ednwhrFoe5cngKwPUJ2N4iFKD9Jt53GxSCc1MmPQ6",
- "name" : "2",
- "participantNodeState" : "CONSENSUS",
- "address" : {
- "value" : "LdeNwsiuo7n6HULWhNKc87PBXJXAfGKFon9RE"
- }
- },
- {
- "name" : "1",
- "pubKey" : "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "id" : 1,
- "participantNodeState" : "CONSENSUS",
- "address" : {
- "value" : "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- }
- },
- {
- "id" : 0,
- "name" : "0",
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "address" : {
- "value" : "LdeNyibeafrAQXgHjBxgQxoLbna6hL4BcXZiw"
- },
- "participantNodeState" : "CONSENSUS"
- },
- {
- "participantNodeState" : "CONSENSUS",
- "address" : {
- "value" : "LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6"
- },
- "name" : "3",
- "pubKey" : "7VeRGE4V9MR7HgAqTrkxGvJvaaKRZ3fAjHUjYzpNBGcjfAvr",
- "id" : 3
- }
- ],
- "participantCount" : 4,
- "metadata" : {
- "ledgerStructureVersion" : 0,
- "seed" : "NiSpjQVYRMMEA+1bnyU2eA==",
- "userRolesHash" : "j5rggjQQtcjMTSwxFyDedcxPSxVVfjAB3khJDvgdiGFhiB",
- "settingsHash" : "j5iNkXJptLJrJcFL1YJpuvbJCh6H3iioBNJG7QKPESUUif",
- "participantsHash" : "j5qzkZgpGMczBDNKXRGJdyPTndkxPvB7Gdrfiqy6LvG7P5",
- "rolePrivilegesHash" : "j5hBCfTVv77mTyM5WHoGnw1cezgzB3QDqojqjhg5qmuECn"
- },
- "settings" : {
- "cryptoSetting" : {
- "supportedProviders" : [
- {
- "algorithms" : [
- {
- "name" : "AES",
- "code" : -32230
- },
- {
- "name" : "ED25519",
- "code" : 16661
- },
- {
- "code" : 16662,
- "name" : "ECDSA"
- },
- {
- "name" : "RSA",
- "code" : -16105
- },
- {
- "name" : "RIPEMD160",
- "code" : 8217
- },
- {
- "name" : "SHA256",
- "code" : 8216
- },
- {
- "name" : "JVM-SECURE-RANDOM",
- "code" : 4123
- }
- ],
- "name" : "com.jd.blockchain.crypto.service.classic.ClassicCryptoService"
- },
- {
- "name" : "com.jd.blockchain.crypto.service.sm.SMCryptoService",
- "algorithms" : [
- {
- "code" : -16126,
- "name" : "SM2"
- },
- {
- "name" : "SM3",
- "code" : 8195
- },
- {
- "name" : "SM4",
- "code" : -32252
- }
- ]
- }
- ],
- "hashAlgorithm" : 8216,
- "autoVerifyHash" : false
- },
- "consensusProvider" : "com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider",
- "consensusSetting" : {
- "value" : "11u5FERE3JChMzbiFcGwjdyyegB6Dq6Nn3s1zB7U9AFs9xaphxosYGwQ2NAAXi2fM2NKf1WKpuvaWz51gsfWRSm7SJiAX9B26hxwmjwtSuGwcSJTZkDcScAFV5Pvv4pnbeZwvzcygEE4PGRYw835PN65eaaFX9114UjmaKeGBexzKwGYDAfc5hGPtpqmeuNurc6yHycRnRV1NNq9ZMUSiSpquiJgh1a8XtaYW9nakSH6jJKYSsX8axhYjMpta8CdBwkMZPZDCMcDojwzdzDQyaovTarACtxUWCdYz88U986k8SB3y5Z3PvU9QpSufCZEMPgLEGThi4PNhCSmdmcCJPEGvrfqfTTXMPDvPxLBZLKkpLHpXvmDiLot2pTCkPRicLhF7bnACW5CbNBkB73TRvdnAgFYBqKqQHuMxoTFyrABGdtWT5niFp8DXsTvv2sKSMxFZWgdDt2x5ax1xVCogzJTgxAQrd2ykDd32dkCdzKQJ6RpA3cJABguKXs6txXoeY2VPCg19mZCezNUW1SvhMVw7Dy1a8HHT2xMZ77MwHTXXfn2bEKNJCAv1PRM1re2Upnqo55am8ssoeAvABMCogKQAM56YsekyuusoYierZmi7pD7o4oNQaPGbzgHs2R9XDjLr2esNvDiJbVkr725PUw5Zgs9nqKg2vo11Z42eyXQxzw3Czg4FNts5xm7BeMwJXkT337cZHT2mJkUp58SUxmEB2TcGnzHXvz7qqdJ5NZRQaY87KgrEzo2xTwm8VW9AegiUNgExo5xxJXsGM1p24NCxgodjGnqx6FhB6JDjubDiU2oC7HAnqhwUF6AKgAQpdhGhvs2ts4dxYu8vEoZ5eyQaM2NXfUbm5jTAUvCaafd4oXZDXik4Jv79oUGtncVg52oj3MKZ4nqicMwoAz7esxDX9BWwyR1fEbU7vGPn9FPh87kdqh5koMF2BLhqnd5puobFsL38wtpmwA62DNtuekvTcTFjE97QMqpRKwzos2Kjnah6k6CyJ9DXkaUT7KE1fjWxuTv9794J93wVzheKjEy5nRqhWKHpj1AEPmrfPB9kS1TRUWGEN5aRSjWUgzydcpXutrPfm4wg3Xhgme5fURvE9Pm8F7pTdKaWS6dXDDm5bqWbQ38mMnmkvta54RL563bRPLS3fqmaRyshjN8V5nfec7LF4Fxj1PJhJ5XWR8tmHSD3Yd311BjZ8HaqtaCb74uvjGzjd6M1bh1KU8r96wMcY31Ldc2551iXU7hx2tmBKCAnJekvfQKRv7NvUphfSLJ5AqhAiibFbuQupkz9RgbcpD4Agm6Vv36CiiTDR9PNneP7xjYifuzSUL5hhJwoEpc9Zr6cdhbkAn7sePDkPMo1WCvvJPV9gR4MufSjCN1uxGTXF2fQCmucZemBJ7gTXc5uuATYyip1DRq4m8zpWQ9sz1wyMbqHVSnFKbcApDYhcxPmuF4FTm36gYbCU3q4TuMQvXUoz4Zfjc5y4kaR7im8ocuPFBCXbYgpUjeta52LTJbw2xtNG7EPdjGPXcvqNj4yQSrdGirGJc7dXoUhsJSki1j2dm2T3hdWXsu5oLmxfadoqQXqazhrd7bQJBViEYri51vkMkf8BJCJF8y8wEdZsDcusYYqSZn1mYToHKjAbu4oxGLnp7AM6TSpMjqdsxNBTCgD4u9Q2GvFKEW5S3W5fQvkPhEYSS5Q12K7oHTi2Cs22oQRADXw5FxRedzvSfuQdeA3RN8XgbSHr72mQXzso6SvLQda4Xnfz9M2hSsxg8QRsQm4dBsZ5aSGnZw45dHKHBNRv2RxmHntFbcc1JwCPhbbBxwE8zWp28pEdF1K1qRSRbNMorXvvNBQZPvjoztLc15u2KcQK3Xczvdmc5naBpqoPWmUxcntsX9STCz5ep7sjf5KAkLxq2XQjruC2mbbVNVvZ6o4vnpQxGDVegMigATbSrNWipCp6mqJA7RDdKomdb21apSANr8V3s2nCjDrqMSjgwSxnUMAfS1BuDuhBF8pJB5YnmWJ2WTFCJKndU5D1UnZPawPmtxpG9m2jxKka1DRBJrWGN4UNYZHmqwpy6pAGiFAjg1Yak5cwsPAyHvaP6AFjVqpZbphccWmch1rKhah2BKhC3Jt2WoCmdYKJB6yNJHXgyNmaesUqYTKuq6yJk12QqQGAsHw9H3PYYTARaEHt1qPo76LB8vzUmcUV9dov6Q1Laa2XvUTkdor5XNycVW5Y4SpiqHwGDAY2ujHnte5E241FEYVXfyJBgMLZwnBXFtZm38WENifVQEk1nDsfoRCMZWyg4KyPUNSCvnqq7BtjrDfGQm4X5pMoHm1MuKeL4bJP"
- }
- }
- },
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |participants|参与方列表|
- |participantCount|参与方数量|
- |metadata|元数据|
- |settings|配置信息|
- |consensusProvider|共识协议|
- |consensusSetting|共识配置|
-
-
- ## 3 区块
-
- ### 3.1 获取最新区块
-
- ```http
- GET /ledgers/{ledger}/blocks/latest
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串 |
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/latest
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : {
- "timestamp" : 1615261725429,
- "transactionSetHash" : "j5ssSG7LQC2CgU7fLbMCs2m2JtwN26j5kj2buE2u8F9miP",
- "userAccountSetHash" : "j5hzkPPBJAqKs4rLWbEiFhbh1VW6Jc2xk878X5A6JywPnC",
- "previousHash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp",
- "hash" : "j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23",
- "adminAccountHash" : "j5maavFZShDorv36Sj5W8ijm1wkm2z9GtfdiVvUcfzvwv8",
- "height" : 1,
- "ledgerHash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp",
- "dataAccountSetHash" : "j5poz1Ced486LxYbcotGvihT42CTiQym98Mg1By8DHZBxJ"
- },
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |hash|区块哈希|
- |height|区块高度|
- |timestamp|区块创建时间戳|
- |ledgerHash|账本哈希|
- |previousHash|前置区块哈希|
- |transactionSetHash|交易集哈希|
- |userAccountSetHash|用户集哈希|
- |contractAccountSetHash|合约集哈希|
- |adminAccountHash|管理员集哈希|
- |dataAccountSetHash|数据账户集哈希|
-
- ### 3.2 根据区块哈希获取区块详细信息
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型 |
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_hash|是|区块哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23
- ```
-
- #### 返回实例
-
- 同 [3.1](3.1-获取最新区块)
-
-
- ### 3.3 根据区块高度获取区块详细信息
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_height|是|区块高度|数字|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/1
- ```
-
- #### 返回实例
-
- 同 [3.1](3.1-获取最新区块)
-
- ## 4 交易
-
- ### 4.1 获取账本交易总数
-
- ```http
- GET /ledgers/{ledger}/txs/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/txs/count
- ```
-
- ##### 返回实例
-
- ```json
- {
- "data": 2,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|交易数量|
-
- ### 4.2 根据区块高度查询交易数量
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledgerHash}/blocks/height/{block_height}/txs/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_height|是|区块高度|数字|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/66/txs/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|交易数量|
-
- ### 4.3 根据区块哈希查询交易数量
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/txs/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_hash|是|区块哈希|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23/txs/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|交易数量|
-
- ### 4.4 根据区块高度查询区块内的交易数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}/txs/additional-count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_height|是|区块高度|数字|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/66/txs/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|交易数量|
-
- ### 4.5 根据区块哈希查询区块内的交易数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/txs/additional-count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_hash|是|区块哈希|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23/txs/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|交易数量|
-
- ### 4.6 获取指定区块高度的交易列表
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{height}/txs?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|height|是|区块高度|数字|
- |query|fromIndex|否|查询交易的起始序号,默认为0|数字|
- |query|count|否|查询返回交易的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/66/txs?fromIndex=1&count=1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "request" : {
- "transactionContent" : {
- "timestamp" : 1615261725387,
- "ledgerHash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp",
- "operations" : [
- {
- "@type" : "com.jd.blockchain.ledger.DataAccountRegisterOperation",
- "accountID" : {
- "pubKey" : "7VeRBZLMWAxcgL9DTjGWn9FHWny54bzDzrgeAH6pCFvEJ5eT",
- "address" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- }
- }
- },
- {
- "writeSet" : [
- {
- "value" : {
- "type" : "TEXT",
- "bytes" : {
- "value" : "EMeAB7i"
- }
- },
- "expectedVersion" : -1,
- "key" : "key"
- }
- ],
- "@type" : "com.jd.blockchain.ledger.DataAccountKVSetOperation",
- "accountAddress" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- }
- }
- ]
- },
- "nodeSignatures" : [
- {
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "digest" : "SMJHE64z77GSkBkC8Zw45r8zRhCq3KWgyGMxRo7KXZ1JWjnBBj1WkPGBdS3AUAX3UoWK5ymGxeqaskjTVgHxGtC768"
- }
- ],
- "transactionHash" : "j5siSjjv7H6s61zsMajkGfyhASFnKpthveNDptCrM2gmui",
- "endpointSignatures" : [
- {
- "digest" : "SMJHE64z77GSkBkC8Zw45r8zRhCq3KWgyGMxRo7KXZ1JWjnBBj1WkPGBdS3AUAX3UoWK5ymGxeqaskjTVgHxGtC768",
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn"
- }
- ]
- },
- "result" : {
- "executionState" : "SUCCESS",
- "dataSnapshot" : {
- "adminAccountHash" : "j5maavFZShDorv36Sj5W8ijm1wkm2z9GtfdiVvUcfzvwv8",
- "userAccountSetHash" : "j5hzkPPBJAqKs4rLWbEiFhbh1VW6Jc2xk878X5A6JywPnC",
- "dataAccountSetHash" : "j5poz1Ced486LxYbcotGvihT42CTiQym98Mg1By8DHZBxJ"
- },
- "blockHeight" : 1,
- "transactionHash" : "j5siSjjv7H6s61zsMajkGfyhASFnKpthveNDptCrM2gmui"
- }
- }
- ],
- "success" : true
- }
- ```
-
-
- 说明
-
- |名称|说明|
- |---|---|
- |request|请求数据|
- |request.transactionContent|交易内容|
- |request.transactionContent.timestamp|交易时间戳,毫秒|
- |request.transactionContent.ledgerHash|账本哈希|
- |request.transactionContent.operations|操作列表|
- |request.nodeSignatures|参与方签名列表|
- |request.endpointSignatures|终端用户签名列表|
- |request.transactionHash|交易哈希|
- |result|交易结果|
- |result.executionState|交易执行状态,SUCCESS(成功)|
- |result.dataSnapshot|交易执行后数据快照|
- |result.blockHeight|最新区块高度|
- |result.transactionHash|交易哈希|
-
- ### 4.7 获取指定哈希的区块的交易列表
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/txs?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|block_hash|是|区块哈希|字符串|
- |query|fromIndex|否|查询交易的起始序号,默认为0|数字|
- |query|count|否|查询返回交易的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23/txs?fromIndex=1&count=1
- ```
-
- #### 返回实例
-
- [同 4.4](#4.4-获取指定区块高度的交易列表)
-
-
- ### 4.8 获取交易详细信息
-
- ```http
- GET /ledgers/{ledger}/txs/hash/{tx_hash}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|tx_hash|是|交易哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/txs/hash/j5siSjjv7H6s61zsMajkGfyhASFnKpthveNDptCrM2gmui
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "result" : {
- "dataSnapshot" : {
- "dataAccountSetHash" : "j5poz1Ced486LxYbcotGvihT42CTiQym98Mg1By8DHZBxJ",
- "userAccountSetHash" : "j5hzkPPBJAqKs4rLWbEiFhbh1VW6Jc2xk878X5A6JywPnC",
- "adminAccountHash" : "j5maavFZShDorv36Sj5W8ijm1wkm2z9GtfdiVvUcfzvwv8"
- },
- "transactionHash" : "j5siSjjv7H6s61zsMajkGfyhASFnKpthveNDptCrM2gmui",
- "blockHeight" : 1,
- "executionState" : "SUCCESS"
- },
- "request" : {
- "nodeSignatures" : [
- {
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "digest" : "SMJHE64z77GSkBkC8Zw45r8zRhCq3KWgyGMxRo7KXZ1JWjnBBj1WkPGBdS3AUAX3UoWK5ymGxeqaskjTVgHxGtC768"
- }
- ],
- "endpointSignatures" : [
- {
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "digest" : "SMJHE64z77GSkBkC8Zw45r8zRhCq3KWgyGMxRo7KXZ1JWjnBBj1WkPGBdS3AUAX3UoWK5ymGxeqaskjTVgHxGtC768"
- }
- ],
- "transactionHash" : "j5siSjjv7H6s61zsMajkGfyhASFnKpthveNDptCrM2gmui",
- "transactionContent" : {
- "timestamp" : 1615261725387,
- "operations" : [
- {
- "@type" : "com.jd.blockchain.ledger.DataAccountRegisterOperation",
- "accountID" : {
- "address" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- },
- "pubKey" : "7VeRBZLMWAxcgL9DTjGWn9FHWny54bzDzrgeAH6pCFvEJ5eT"
- }
- },
- {
- "accountAddress" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- },
- "@type" : "com.jd.blockchain.ledger.DataAccountKVSetOperation",
- "writeSet" : [
- {
- "value" : {
- "bytes" : {
- "value" : "EMeAB7i"
- },
- "type" : "TEXT"
- },
- "expectedVersion" : -1,
- "key" : "key"
- }
- ]
- }
- ],
- "ledgerHash" : "j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp"
- }
- }
- }
- }
- ```
-
- 说明
-
- [同 4.4](#4.4-获取指定区块高度的交易列表)
-
- ## 5 用户
-
- ### 5.1 获取用户总数
-
- ```http
- GET /ledgers/{ledger}/users/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/users/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 4,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|用户总数|
-
-
- ### 5.2 获取用户列表
-
- ```http
- GET /ledgers/{ledger}/users?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |query|fromIndex|否|查询用户的起始序号,默认为0|数字|
- |query|count|否|查询返回用户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/users?fromIndex=0&count=2
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : [
- {
- "pubKey" : "7VeRJpb2XX8XKAaC7G5zQg9DbgKM8gmLhUBtGFmerFbhJTZn",
- "address" : {
- "value" : "LdeNyibeafrAQXgHjBxgQxoLbna6hL4BcXZiw"
- }
- },
- {
- "pubKey" : "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "address" : {
- "value" : "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- }
- }
- ]
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|用户地址|
- |pubKey|用户公钥|
-
-
- ### 5.3 获取用户详细信息
-
- ```http
- GET /ledgers/{ledger}/users/address/{address}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|用户地址|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/users/address/LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "pubKey" : "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "iD" : {
- "pubKey" : "7VeREmuT4fF9yRPEMbSSaNLKbLa3qoTpfGHRgwpnSWUn5tqW",
- "address" : {
- "value" : "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- }
- },
- "dataRootHash" : "j5uJfAqLw1ptaZYJyKVZm37zZybboqxMPpS6Mv59rNd4xF",
- "headerRootHash" : "j5oYeBmoBJ4jLpijwi6eoKAqh4BsQ3RWHzxdBnTvvTqSK6",
- "dataset" : {
- "dataCount" : 0,
- "updated" : false,
- "readonly" : false,
- "rootHash" : "j5uJfAqLw1ptaZYJyKVZm37zZybboqxMPpS6Mv59rNd4xF"
- },
- "address" : {
- "value" : "LdeNiXZbsBCsTc2ZGp1PGBX81aUxPekhwEwmY"
- }
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|用户地址|
- |pubKey|用户公钥|
- |dataset.rootHash|用户根Hash|
-
- ### 5.4 获取指定高度的区块的用户总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}/users/count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------------ | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_height | 是 | 区块高度 | 数字 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/users/height/1/users/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 4,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 5.5 获取指定哈希的区块的用户总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/users/count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ---------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_hash | 是 | 区块哈希 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5opzRbH2fB6YmjvEdMLQ8VHVeZoUuKyVWzExCtJF1wecw/users/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 4,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 5.6 根据区块高度查询区块内的用户数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}/users/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------------ | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_height | 是 | 区块高度 | 数字 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/2/users/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 用户数量 |
-
- ### 5.7 根据区块哈希查询区块内的用户数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/users/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ---------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_hash | 是 | 区块哈希 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23/users/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 用户数量 |
-
- ### 5.8 查询最新区块新增用户数量
-
- **仅包含最新区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/users/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------ | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/users/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 0,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 用户数量 |
-
- ## 6 角色权限
-
- 有关用户/角色/权限说明参照[用户文档](user.md)
-
- ### 6.1 根据角色获取权限信息
- ```http
- GET /ledgers/{ledger}/authorization/role/{roleName}
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | -------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | roleName | 是 | 角色名 | 字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5pSJLyVpS8QG2wL95fiDWHHnweh2YdqNhgmnb64SBMjUh/authorization/role/DEFAULT
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "roleName" : "DEFAULT",
- "transactionPrivilege" : {
- "privilege" : [
- "DIRECT_OPERATION",
- "CONTRACT_OPERATION"
- ],
- "permissionCount" : 2
- },
- "version" : 0,
- "ledgerPrivilege" : {
- "privilege" : [
- "CONFIGURE_ROLES",
- "AUTHORIZE_USER_ROLES",
- "SET_CONSENSUS",
- "SET_CRYPTO",
- "REGISTER_PARTICIPANT",
- "REGISTER_USER",
- "REGISTER_DATA_ACCOUNT",
- "REGISTER_CONTRACT",
- "UPGRADE_CONTRACT",
- "SET_USER_ATTRIBUTES",
- "WRITE_DATA_ACCOUNT",
- "APPROVE_TX",
- "CONSENSUS_TX",
- "REGISTER_EVENT_ACCOUNT",
- "WRITE_EVENT_ACCOUNT"
- ],
- "permissionCount" : 15
- }
- }
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ------------------------------------ | ----------------- |
- | roleName | 角色名称 |
- | transactionPrivilege | 交易权限 |
- | transactionPrivilege.privilege | 交易权限.权限类别 |
- | transactionPrivilege.permissionCount | 交易权限.权限总数 |
- | ledgerPrivilege | 账本权限 |
- | ledgerPrivilege.privilege | 账本权限.权限类别 |
- | ledgerPrivilege.permissionCount | 账本权限.权限总数 |
-
- ### 6.2 根据用户获取权限信息
-
- ```http
- GET /ledgers/{ledger}/authorization/user/{userAddress}
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ----------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | userAddress | 是 | 用户地址 | 字符串 |
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5pSJLyVpS8QG2wL95fiDWHHnweh2YdqNhgmnb64SBMjUh/authorization/user/LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : {
- "userAddress" : {
- "value" : "LdeP2ji8PR1DPsLt5NoFeiBnhpckrLHgCJge6"
- },
- "userRole" : [
- "DEFAULT"
- ],
- "ledgerPrivilegesBitset" : {
- "privilege" : [
- "CONFIGURE_ROLES",
- "AUTHORIZE_USER_ROLES",
- "SET_CONSENSUS",
- "SET_CRYPTO",
- "REGISTER_PARTICIPANT",
- "REGISTER_USER",
- "REGISTER_DATA_ACCOUNT",
- "REGISTER_CONTRACT",
- "UPGRADE_CONTRACT",
- "SET_USER_ATTRIBUTES",
- "WRITE_DATA_ACCOUNT",
- "APPROVE_TX",
- "CONSENSUS_TX",
- "REGISTER_EVENT_ACCOUNT",
- "WRITE_EVENT_ACCOUNT"
- ],
- "permissionCount" : 15
- },
- "transactionPrivilegesBitset" : {
- "permissionCount" : 2,
- "privilege" : [
- "DIRECT_OPERATION",
- "CONTRACT_OPERATION"
- ]
- }
- },
- "success" : true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | --------------------------- | ---------- |
- | userRole | 用户角色 |
- | transactionPrivilegesBitset | 交易权限集 |
- | ledgerPrivilegesBitset | 账本权限集 |
-
- > 请求链上不存在的用户地址,会返回DEFAULT角色权限列表
-
- ## 7 数据账户
-
- ### 7.1 获取账户列表
-
- ```http
- GET /ledgers/{ledger}/accounts?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |query|fromIndex|否|查询数据账户的起始序号,默认为0|数字|
- |query|count|否|查询返回数据账户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts?fromIndex=0&count=-1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "address" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- },
- "pubKey" : "7VeRBZLMWAxcgL9DTjGWn9FHWny54bzDzrgeAH6pCFvEJ5eT"
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
-
-
- ### 7.2 获取账户详细信息
-
- ```http
- GET /ledgers/{ledger}/accounts/address/{address}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|账户地址|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/address/LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : {
- "dataset" : {
- "updated" : false,
- "readonly" : false,
- "dataCount" : 1,
- "rootHash" : "j5vjKBpdFncVW9dYnjefiKgs858QKNc98XAvy5pFXmgLKp"
- },
- "headerRootHash" : "j5jUf96A8678xdggUdAZUtADL43WFsFu76gWxT9KkknjLf",
- "dataRootHash" : "j5vjKBpdFncVW9dYnjefiKgs858QKNc98XAvy5pFXmgLKp",
- "pubKey" : "7VeRBZLMWAxcgL9DTjGWn9FHWny54bzDzrgeAH6pCFvEJ5eT",
- "iD" : {
- "pubKey" : "7VeRBZLMWAxcgL9DTjGWn9FHWny54bzDzrgeAH6pCFvEJ5eT",
- "address" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- }
- },
- "address" : {
- "value" : "LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn"
- }
- },
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
-
-
- ### 7.3 获取账户总数
-
- ```http
- GET /ledgers/{ledger}/accounts/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|账户数量|
-
- ### 7.4 获取指定高度的区块的数据账户总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}/accounts/count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------------ | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_height | 是 | 区块高度 | 数字 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/1/accounts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 7.5 获取指定哈希的区块的数据账户总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/accounts/count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ---------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_hash | 是 | 区块哈希 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5opzRbH2fB6YmjvEdMLQ8VHVeZoUuKyVWzExCtJF1wecw/accounts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 7.6 根据区块高度查询区块内的数据账户数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{block_height}/accounts/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------------ | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_height | 是 | 区块高度 | 数字 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/1/accounts/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 7.7 根据区块哈希查询区块内的数据账户数量
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{block_hash}/accounts/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ---------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | block_hash | 是 | 区块哈希 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5irFH5SJBaCSa6R3QYhbWYMUA2Wos3gvXYUyDYAHVhG23/accounts/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | ------------ |
- | data | 数据账户数量 |
-
- ### 7.8 获取某数据账户KV总数
-
- ```http
- GET /ledgers/{ledger}/accounts/address/{address}/entries/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|账户地址|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/address/LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn/entries/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|KV总数|
-
-
- ### 7.9 获取某数据账户KV详情
-
- ```http
- GET /ledgers/{ledger}/accounts/address/{address}/entries?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|账户地址|字符串|
- |query|fromIndex|否|查询数据账户对应KV的起始序号,默认为0|数字|
- |query|count|否|查询返回数据账户对应KV的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/address/LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn/entries?fromIndex=0&count=1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "type" : "TEXT",
- "version" : 0,
- "key" : "key",
- "value" : "value"
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |key|键|
- |version|版本号|
- |type|value类型|
- |value|值|
-
- > 数据类型参照[数据账户](data_account.md)中描述。
-
- ### 7.10 获取某数据账户KV详情
-
- ```http
- GET/POST /ledgers/{ledger}/accounts/{address}/entries?keys={keys}
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ------- | -------- | --------------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | address | 是 | 账户地址 | 字符串 |
- | form | keys | 是 | key详细内容列表 | 字符串 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn/entries?keys=key,key1
- ```
-
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : [
- {
- "key" : "key",
- "value" : 1024,
- "version" : 2,
- "type" : "INT64"
- },
- {
- "type" : "NIL",
- "version" : -1,
- "key" : "key1"
- }
- ]
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ------- | --------- |
- | key | 键 |
- | version | 版本号 |
- | type | value类型 |
- | value | 值 |
-
-
- ### 7.11 获取某数据账户KV整个历史详情
-
- ```http
- GET/POST /ledgers/{ledger}/accounts/{address}/entries-version
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|账户地址|字符串|
- |body|kvInfoVO|是|Key相关信息|对象|
-
- KVInfoVO对应格式如下:
-
- ```json
-
- {
- "data": [{
- "key": "key",
- "version": [0, 1]
- }
- }
-
- ```
-
- kvInfoVO说明:
- - 支持多个Key作为入参;
- - 每个Key支持多个version;
-
-
- #### 请求实例
- ```curl
- curl -H 'Content-Type:application/json' --data '{"data":[{"key":"key","version":[0,1]}]}' 'http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/accounts/LdeNscE3MP9a1vgyVUg9LgxQx6yzkUEUS65Rn/entries-version'
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "type" : "TEXT",
- "key" : "key",
- "value" : "value",
- "version" : 0
- },
- {
- "type" : "BYTES",
- "version" : 1,
- "value" : "Ynl0ZXM=",
- "key" : "key"
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |key|键|
- |version|版本号|
- |type|value类型|
- |value|值,BASE64编码|
-
- ## 8 合约
-
- ### 8.1 获取合约总数
-
- ```http
- GET /ledgers/{ledger}/contracts/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/contracts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 合约数量 |
-
- ### 8.2 获取指定区块高度的合约总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{blockHeight}/contracts/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|blockHeight|是|区块高度|数字|
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/7/contracts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 2,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 合约数量 |
-
-
-
- ### 8.3 获取指定区块哈希的合约总数
-
- **包含当前区块以及之前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{blockHash}/contracts/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|blockHash|是|区块哈希|字符串|
-
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5hhTQPyZQHqkvP5UBq3sAaqxq8QUda6asJLzZ2VFUhvQ8/contracts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 2,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 合约数量 |
-
- ### 8.4 根据区块高度查询区块内的合约总数
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/height/{blockHeight}/contracts/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | ----------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | blockHeight | 是 | 区块高度 | 数字 |
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/height/7/contracts/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 合约数量 |
-
-
-
- ### 8.5 根据区块哈希查询区块内的合约总数
-
- **仅包含当前区块数据**
-
- ```http
- GET /ledgers/{ledger}/blocks/hash/{blockHash}/contracts/additional-count
- ```
-
- #### 参数
-
- | 请求类型 | 名称 | 是否必需 | 说明 | 数据类型 |
- | -------- | --------- | -------- | -------- | -------- |
- | path | ledger | 是 | 账本哈希 | 字符串 |
- | path | blockHash | 是 | 区块哈希 | 字符串 |
-
-
- #### 请求实例
-
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/blocks/hash/j5hhTQPyZQHqkvP5UBq3sAaqxq8QUda6asJLzZ2VFUhvQ8/contracts/additional-count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- | 名称 | 说明 |
- | ---- | -------- |
- | data | 合约数量 |
-
- ### 8.6 获取合约列表
-
- ```http
- GET /ledgers/{ledger}/contracts?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |query|fromIndex|否|查询合约的起始序号,默认为0|数字|
- |query|count|否|查询返回合约的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/contracts?fromIndex=0&count=-1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "pubKey" : "7VeRCfSaoBW3uRuvTqVb26PYTNwvQ1iZ5HBY92YKpEVN7Qht",
- "address" : {
- "value" : "LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye"
- }
- },
- {
- "pubKey" : "7VeRALfcPigCTSEPHSwz7U7TDNLoet85z3nRfr5cYspUWLAR",
- "address" : {
- "value" : "LdeNwApbVMHqTCzNKuynUtJXH7vN2rG8gxHN5"
- }
- }
- ],
- "success" : true
- }
-
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
-
-
- ### 8.7 获取合约详细信息
-
- ```http
- GET /ledgers/{ledger}/contracts/address/{address}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|合约地址|字符串|
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/contracts/address/LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "dataRootHash" : "j5uJfAqLw1ptaZYJyKVZm37zZybboqxMPpS6Mv59rNd4xF",
- "chainCode" : "package com.jdchain.samples.contract;\n\nimport com.jd.blockchain.contract.*;\nimport utils.*;\nimport com.jd.blockchain.crypto.*;\nimport com.jd.blockchain.ledger.*;\n\npublic class SampleContractImpl implements EventProcessingAware, SampleContract\n{\n private ContractEventContext eventContext;\n \n public void setKVWithVersion(final String address, final String key, final String value, final long version) {\n this.eventContext.getLedger().dataAccount(Bytes.fromBase58(address)).setText(key, value, version);\n }\n \n public void setKV(final String address, final String key, final String value) {\n final TypedKVEntry[] entries = this.eventContext.getUncommittedLedger().getDataEntries(address, new String[] { key });\n long version = -1L;\n if (null != entries && entries.length > 0) {\n version = entries[0].getVersion();\n }\n this.eventContext.getLedger().dataAccount(Bytes.fromBase58(address)).setText(key, value, version);\n }\n \n public String registerUser(final String seed) {\n final CryptoAlgorithm algorithm = Crypto.getAlgorithm(\"ed25519\");\n final SignatureFunction signFunc = Crypto.getSignatureFunction(algorithm);\n final AsymmetricKeypair cryptoKeyPair = signFunc.generateKeypair(seed.getBytes());\n final BlockchainKeypair keypair = new BlockchainKeypair(cryptoKeyPair.getPubKey(), cryptoKeyPair.getPrivKey());\n this.eventContext.getLedger().users().register(keypair.getIdentity());\n return keypair.getAddress().toBase58();\n }\n \n public String registerDataAccount(final String seed) {\n final CryptoAlgorithm algorithm = Crypto.getAlgorithm(\"ed25519\");\n final SignatureFunction signFunc = Crypto.getSignatureFunction(algorithm);\n final AsymmetricKeypair cryptoKeyPair = signFunc.generateKeypair(seed.getBytes());\n final BlockchainKeypair keypair = new BlockchainKeypair(cryptoKeyPair.getPubKey(), cryptoKeyPair.getPrivKey());\n this.eventContext.getLedger().dataAccounts().register(keypair.getIdentity());\n return keypair.getAddress().toBase58();\n }\n \n public String registerEventAccount(final String seed) {\n final CryptoAlgorithm algorithm = Crypto.getAlgorithm(\"ed25519\");\n final SignatureFunction signFunc = Crypto.getSignatureFunction(algorithm);\n final AsymmetricKeypair cryptoKeyPair = signFunc.generateKeypair(seed.getBytes());\n final BlockchainKeypair keypair = new BlockchainKeypair(cryptoKeyPair.getPubKey(), cryptoKeyPair.getPrivKey());\n this.eventContext.getLedger().eventAccounts().register(keypair.getIdentity());\n return keypair.getAddress().toBase58();\n }\n \n public void publishEventWithSequence(final String address, final String topic, final String content, final long sequence) {\n this.eventContext.getLedger().eventAccount(Bytes.fromBase58(address)).publish(topic, content, sequence);\n }\n \n public void publishEvent(final String address, final String topic, final String content) {\n final Event event = this.eventContext.getUncommittedLedger().getLatestEvent(address, topic);\n long sequence = -1L;\n if (null != event) {\n sequence = event.getSequence();\n }\n this.eventContext.getLedger().eventAccount(Bytes.fromBase58(address)).publish(topic, content, sequence);\n }\n \n public void beforeEvent(final ContractEventContext eventContext) {\n this.eventContext = eventContext;\n }\n \n public void postEvent(final ContractEventContext eventContext, final Exception error) {\n }\n}\n",
- "address" : {
- "value" : "LdeNr7H1CUbqe3kWjwPwiqHcmd86zEQz2VRye"
- },
- "headerRootHash" : "j5r72A4PMdDrAU4zhniJNRWM5nKV8kAKMdt6naNrtjRp3A",
- "chainCodeVersion" : 0,
- "pubKey" : "7VeRCfSaoBW3uRuvTqVb26PYTNwvQ1iZ5HBY92YKpEVN7Qht"
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
- |chainCode|合约源代码|
-
-
-
- ## 9 用户自定义事件
-
- ### 9.1 获取事件账户列表
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |query|fromIndex|否|查询的起始序号,默认为0|数字|
- |query|count|否|查询返回事件账户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts?fromIndex=0&count=-1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "address" : {
- "value" : "LdeNqYND7M82fxrej7ffRPXZwahQZEoUSoUzz"
- },
- "pubKey" : "7VeRJe66QNfuacfSVPzTfXPooFcRmMJKXPYqkUsn4r9v8DqA"
- },
- {
- "pubKey" : "7VeRMwxWNcpMszstXtaxJ1fupauuJpwedB81nMJJQB93LiAJ",
- "address" : {
- "value" : "LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA"
- }
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
-
- ### 9.2 获取事件账户
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |address|账户地址|是|事件账户地址|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeNqYND7M82fxrej7ffRPXZwahQZEoUSoUzz
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "address" : {
- "value" : "LdeNqYND7M82fxrej7ffRPXZwahQZEoUSoUzz"
- },
- "pubKey" : "7VeRJe66QNfuacfSVPzTfXPooFcRmMJKXPYqkUsn4r9v8DqA"
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |address.value|账户地址|
- |pubKey|账户公钥|
-
- ### 9.3 获取事件账户总数
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : 2
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|事件账户数量|
-
- ### 9.4 获取事件名数量
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}/names/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|事件账户地址|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA/names/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : 5,
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|事件名数量|
-
- ### 9.5 获取事件名列表
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}/names?fromIndex={fromIndex}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|事件账户地址|字符串|
- |query|fromIndex|否|查询的起始序号,默认为0|数字|
- |query|count|否|查询返回事件账户的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA/names?fromIndex=0&count=-1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- "topic4",
- "topic3",
- "topic",
- "topic1",
- "topic2"
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|事件名数量数组|
-
- ### 9.6 获取最新事件
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}/latest
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|事件账户地址|字符串|
- |path|event_name|是|事件名|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA/names/topic/latest
- ```
-
- #### 返回实例
-
- ```json
- {
- "success" : true,
- "data" : {
- "sequence" : 0,
- "blockHeight" : 8,
- "transactionSource" : "j5p868BwtU4w5BxG7gnuhQCFqpAgddVzTWNEKMAzZ8bnrF",
- "eventAccount" : {
- "value" : "LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA"
- },
- "name" : "topic",
- "contractSource" : "",
- "content" : {
- "bytes" : {
- "value" : "4mZ4ZZRGDZ"
- },
- "nil" : false,
- "value" : "content",
- "type" : "TEXT"
- }
- }
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |sequence|事件序列|
- |transactionSource|交易哈希|
- |blockHeight|时间产生区块高度|
- |contractSource|合约地址|
- |eventAccount.value|事件账户地址|
- |name|事件名|
- |content.nil|事件内容是否为空|
- |content.bytes.value|事件内容字节,BASE64编码|
- |content.type|事件内容类型|
- |content.value|事件内容|
-
- ### 9.7 获取事件数量
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}/count
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|事件账户地址|字符串|
- |path|event_name|是|事件名|字符串|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeP1yuk8Medq3Sph5ur9y1yE6nJ71XRVPPx1/names/topic/count
- ```
-
- #### 返回实例
-
- ```json
- {
- "data": 1,
- "success": true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|事件数量|
-
- ### 9.8 获取事件列表
-
- ```http
- GET /ledgers/{ledger}/events/user/accounts/{address}/names/{event_name}?fromSequence={fromSequence}&count={count}
- ```
-
- #### 参数
-
- |请求类型|名称|是否必需|说明|数据类型|
- |---|---|---|---|---|
- |path|ledger|是|账本哈希|字符串|
- |path|address|是|事件账户地址|字符串|
- |path|event_name|是|事件名|字符串|
- |query|fromSequence|否|查询的起始序号,默认为0|数字|
- |query|count|否|查询返回事件的数量,默认最大返回值为100,小于0或大于100均返回最大可返回结果集|数字|
-
-
- #### 请求实例
- ```http
- http://localhost:8080/ledgers/j5hQrVB8y78xXbDR9vB92WBjiJShH36G7YLdQYsxtRxkpp/events/user/accounts/LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA/names/topic?fromSequenct=0&count=-1
- ```
-
- #### 返回实例
-
- ```json
- {
- "data" : [
- {
- "content" : {
- "value" : "content",
- "nil" : false,
- "type" : "TEXT",
- "bytes" : {
- "value" : "4mZ4ZZRGDZ"
- }
- },
- "eventAccount" : {
- "value" : "LdeNiAPuZ5tpYZVrrbELJNjqdvB51PBpNd8QA"
- },
- "contractSource" : "",
- "name" : "topic",
- "sequence" : 0,
- "transactionSource" : "j5p868BwtU4w5BxG7gnuhQCFqpAgddVzTWNEKMAzZ8bnrF",
- "blockHeight" : 8
- }
- ],
- "success" : true
- }
- ```
-
- 说明
-
- |名称|说明|
- |---|---|
- |data|事件列表|
- |sequence|事件序列|
- |transactionSource|交易哈希|
- |blockHeight|时间产生区块高度|
- |contractSource|合约地址|
- |eventAccount.value|事件账户地址|
- |name|事件名|
- |content.nil|事件内容是否为空|
- |content.bytes.value|事件内容字节,BASE64编码|
- |content.type|事件内容类型|
- |content.value|事件内容|
|