BDContract SDK
==============

闄や娇鐢ㄥ彲瑙嗗寲鐨勬櫤鑳藉悎绾﹀湪绾縄DE澶�,鐢ㄦ埛杩樺彲浣跨敤WebSocket鎺ュ彛銆丠ttp鎺ュ彛銆丅ash鎺ュ彛鏉ュ惎鍔ㄥ拰杩愯鍚堢害.

--------------

WebSocketSDK涓嬭浇涓庡畨瑁�
----------------------

鍚堢害SDK鎻愪緵javascript鐗堟湰涓巎ava鐗堟湰鐨勫鎴风銆�

java瀹㈡埛绔殑涓嬭浇閾炬帴涓�:\ `java
source <./_static/BDWareJavaClient.zip>`__\ 鍜孿 `jar <./_static/BDWareConfigTool.zip>`__
鍙弬鑰僯ava_source涓嬬殑README.md鍙婃祴璇曠敤渚嬨€�

javascript鐨勪笅杞介摼鎺ヤ负:\ `js SDK <./_static/js/createWS.js>`__
鍐呯疆鐨凷M2鍔犲瘑搴撻摼鎺�:\ `sm2 SDK <./_static/js/sm2.js>`__

寤虹珛杩炴帴
~~~~~~~~

寤虹珛涓庤妭鐐规湇鍔″櫒涔嬮棿鐨刉ebSocket杩炴帴.

鍙傛暟
^^^^

+---------+------------------------------------------------------------+
| 瀛楁    | 鍊�                                                         |
+=========+============================================================+
| url     | 寤虹珛WebSocket鐨勬湇鍔″櫒URL. 浣跨敤\ ``http``\ 鍗忚鏃�,          |
|         | 鍓嶇紑涓篭 ``ws://``,                                         |
|         | 濡俓 ``"ws://localhost:1717/SCIDE/SCExecutor"``;            |
|         | 浣跨敤\ ``https``\ 鍗忚鏃�, 鍓嶇紑涓篭 ``wss://``                |
+---------+------------------------------------------------------------+
| msgHand | 鏀跺埌鏈嶅姟鍣╓ebSocket鍥炲鍚庣殑鍥炶皟鍑芥暟, 鐢ㄦ埛鍙嚜琛岀紪鍐�,       |
| ler     | 涔熷彲鍙傝€冧笅闈㈡彁渚涚殑绀轰緥                                     |
+---------+------------------------------------------------------------+

璇锋眰绀轰緥
^^^^^^^^

.. code:: javascript

   var url = "ws://127.0.0.1:1717/SCIDE/SCExecutor";//涓嶴lave鑺傜偣寤虹珛杩炴帴
   //var url = "ws://127.0.0.1:1718/NodeCenterWS";//涓嶮anager鑺傜偣寤虹珛杩炴帴
   var msgHandler = function(m){
     console.log("recmsg:");
     console.log(m);
   };
   var onOpenHandler=undefined;
   wssocket = createWssocket(url,onOpenHandler,msgHandler);

杩斿洖缁撴灉绀轰緥
^^^^^^^^^^^^

::

   {
     receiveSeg: [Function (anonymous)],
     isSending: false,
     sendList: [],
     monitor: [Function (anonymous)],
     send: [Function (anonymous)],
     sendNextSegment: [Function (anonymous)],
     isOpen: [Function (anonymous)]
   }

ping
~~~~

``ping``\ 鏈嶅姟鍣ㄦ祴璇�

.. _鍙傛暟-1:

鍙傛暟
^^^^

====== ====
瀛楁   鍊�
====== ====
action ping
====== ====

.. _璇锋眰绀轰緥-1:

璇锋眰绀轰緥
^^^^^^^^

::

   var request = {};
   request.action = "ping";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-1:

杩斿洖缁撴灉绀轰緥
^^^^^^^^^^^^

::

   {
       "action":"pong"
   }

鐧诲綍
~~~~

浣跨敤Websocket鎺ュ彛璋冪敤闇€瑕佹潈闄愮殑鎺ュ彛鏃讹紝涓嶈鏄繛鎺enterPortal杩樻槸NodePortal蹇呴』鍏圽 **鐧诲綍**\ 銆�
鐧诲綍鐨勬祦绋嬫湁3姝ワ細

-  瀹㈡埛绔悜鏈嶅姟绔缓绔嬭繛鎺ワ紝杩炴帴寤虹珛瀹屾垚鍚庡彂閫亄鈥渁ction鈥�:鈥済etSessionID鈥潁锛堝彲鍦╫nOpenHandler涓疄鐜帮級
-  鏈嶅姟绔敹鍒拌姹傚悗锛屼細鍚戝鎴风杩斿洖绫讳技{鈥渁ction鈥�:鈥渙nGetSessionID鈥�,鈥渟ession鈥�:鈥�-4959947809200104526_session鈥潁鐨勭粨鏋�
-  瀹㈡埛绔敹鍒皁nGetSessionID鍚�,浼氫娇鐢ㄦ湰鍦扮殑鍏閽ュsessionID杩涜绛惧悕锛屽苟璋冪敤login鎺ュ彛
-  鏈嶅姟绔細杩斿洖onLogin鐨勭粨鏋滐紝data瀛楁杩斿洖鐨勬槸璇ュ叕閽ュ搴旂殑瑙掕壊銆�

--------------

鐢ㄦ埛瑙掕壊鍒掑垎
------------

鍚堢害鑺傜偣鐨勮鑹插垝鍒�
~~~~~~~~~~~~~~~~~~

鍦ㄥ悎绾﹁妭鐐�(NodePortal.html)涓垎涓篘odeManager/ContractProvider/ContractInstanceManager/ContractUser鍥涚被瑙掕壊銆�

======================= ==========================================================================
瑙掕壊                    璇存槑
======================= ==========================================================================
NodeManager             璇ヨ妭鐐圭殑绠$悊鑰咃紝鎷ユ湁鐢ㄦ埛绠$悊銆佽妭鐐归厤缃瓑鏉冮檺
ContractProvider        鎷ユ湁缂栬緫鍚堢害銆佸紑鍙戝悎绾︿唬鐮併€佽繍琛岃皟璇曠瓑鏉冮檺
ContractInstanceManager 鎷ユ湁鍚€佸仠鍚堢害瀹炰緥銆侀厤缃悎绾﹀疄渚婭O绛夋潈闄�
ContractUser            鎷ユ湁鏌ョ湅鍚堢害瀹炰緥鍒楄〃銆佽皟鐢ㄥ悎绾︾瓑鏉冮檺
Anonymous               鍖垮悕鐢ㄦ埛锛屽彲浠ヨ皟鐢ㄥ悎绾︼紝鍙互鐢宠鎴愪负ContractProvider/InstanceManager绛夎鑹�
======================= ==========================================================================

=============================== ==================== =========================================
鎺ュ彛                            璇存槑                 瑙掕壊
=============================== ==================== =========================================
changeDumpPeriod                璁剧疆澶囦唤鍛ㄦ湡         ContractInstanceManager;
createLedger                    鍒涘缓璐︽湰             ContractInstanceManager;
dumpContract                    鎵嬪姩澶囦唤             ContractInstanceManager;
deleteMemoryFile                鍒犻櫎闀滃儚             ContractInstanceManager;
forkContract                    杩佺Щ鍚堢害             ContractInstanceManager;
getDumpPeriod                   鑾峰彇澶囦唤鍛ㄦ湡         ContractInstanceManager;
killAllContract                 鍋滄鍏ㄩ儴瀹炰緥         ContractInstanceManager;
killContractProcess             鍋滄鏌愪竴瀹炰緥         ContractInstanceManager;
listMemoryFiles                 鍒楀彇鏌愪竴瀹炰緥鐨勯暅鍍�   ContractInstanceManager;
loadMemory                      鍔犺浇闀滃儚             ContractInstanceManager;
queryContractInstanceDOI        鏌ヨ鍚堢害瀹炰緥淇℃伅     ContractInstanceManager;
rebuildHashIndex                                     ContractInstanceManager;
setPermission                                        ContractProvider;ContractInstanceManager;
startContract                   鍚姩鍚堢害             ContractInstanceManager;
startContractBatched            搴熷純                 ContractInstanceManager;
startContractByYPK              鍚姩鍚堢害             ContractInstanceManager;
startContractInTempZips         搴熷純                 ContractInstanceManager;
startContractConfig             鍚姩鍚堢害锛堥泦缇ゆā寮忥級 ContractInstanceManager;
updateContract                                       ContractInstanceManager;
connectTo                       杩炴帴鍚堢害瀹炰緥杈撳嚭娴�   ContractInstanceManager;ContractUser;
countContractLogGroupByAction                        ContractInstanceManager;ContractUser;
countContractLogGroupByCategory                      ContractInstanceManager;ContractUser;
getLastLog                      鏌ヨ鏃ュ織             ContractInstanceManager;ContractUser;
getLog                          鏌ヨ鏃ュ織             ContractInstanceManager;ContractUser;
getLogSize                      鏌ヨ鏃ュ織             ContractInstanceManager;ContractUser;
listAllContractProcess                               ContractInstanceManager;ContractUser;
listContractProcess             鏌ヨ鍚堢害瀹炰緥鍒楄〃     ContractInstanceManager;ContractUser;
listLeakContractProcess                              ContractInstanceManager;ContractUser;
queryContractLogByDate                               ContractInstanceManager;ContractUser;
queryContractLogByKey                                ContractInstanceManager;ContractUser;
queryContractLogByOffset                             ContractInstanceManager;ContractUser;
queryContractLogDetail                               ContractInstanceManager;ContractUser;
queryContractLogSize                                 ContractInstanceManager;ContractUser;
queryNodeLogByDate                                   ContractInstanceManager;ContractUser;
queryNodeLogByOffset                                 ContractInstanceManager;ContractUser;
queryNodeLogSize                                     ContractInstanceManager;ContractUser;
rebuildContractLogIndex                              ContractInstanceManager;ContractUser;
rebuildNodeLogIndex                                  ContractInstanceManager;ContractUser;
changePublic                                         ContractProvider;
createFile                      鏂板缓鏂囦欢             ContractProvider;
deleteFile                      鍒犻櫎鏂囦欢             ContractProvider;
distributeContract                                   ContractProvider;
downloadContract                                     ContractProvider;
downloadContractFromOtherHost                        ContractProvider;
generateAnnotationSample                             ContractProvider;
generateAppDataAnalysis                              ContractProvider;
generateAppDataSource                                ContractProvider;
generateBDCoinEventProject                           ContractProvider;
generateBDCoinProject                                ContractProvider;
generateBiddingExample                               ContractProvider;
generateCSVProject                                   ContractProvider;
generateContractExecutor                             ContractProvider;
generateDAC4BDOA                                     ContractProvider;
generateDAC4BDOA_persist                             ContractProvider;
generateDACSample                                    ContractProvider;
generateEmptyProject                                 ContractProvider;
generateEventPublisher                               ContractProvider;
generateEventSubscriber                              ContractProvider;
generateGasExample                                   ContractProvider;
generateHello                                        ContractProvider;
generateHttpExample                                  ContractProvider;
generateIncentives                                   ContractProvider;
generateJSONExample                                  ContractProvider;
generateLedgerExample                                ContractProvider;
generateLedgerProject                                ContractProvider;
generateLicenceManager                               ContractProvider;
generateLoggerExample                                ContractProvider;
generateMySQLExample                                 ContractProvider;
generateMySQLProject                                 ContractProvider;
generatePostgreSQLSample                             ContractProvider;
generateReadme                                       ContractProvider;
generateRenderSample                                 ContractProvider;
generateRocksDBSample                                ContractProvider;
generateSM2Example                                   ContractProvider;
generateStaticResource                               ContractProvider;
generateTFLinux                                      ContractProvider;
generategenerateTFMac                                ContractProvider;
getProject                                           ContractProvider;
getTemplateList                                      ContractProvider;
importContractInstanceCodeByDOI                      ContractProvider;
listFile                                             ContractProvider;
listProject                                          ContractProvider;
listProjectPermission                                ContractProvider;
listProjects                                         ContractProvider;
renameFile                                           ContractProvider;
saveFile                                             ContractProvider;
startContractAsDebug                                 ContractProvider;
uploadFile                                           ContractProvider;
compile                                              ContractProvider;ContractInstanceManager;
evaluates                                            ContractProvider;ContractInstanceManager;
executeContractP2PTrustfully                         ContractProvider;ContractInstanceManager;
getCodeByID                     鏌ヨ浠g爜             ContractProvider;ContractInstanceManager;
getControlFlowByFileName                             ContractProvider;ContractInstanceManager;
getGasValue                                          ContractProvider;ContractInstanceManager;
listCompiledFiles                                    ContractProvider;ContractInstanceManager;
queryContractResourceInfo                            ContractProvider;ContractInstanceManager;
queryFreeResourceInfo                                ContractProvider;ContractInstanceManager;
staticVerifyContract                                 ContractProvider;ContractInstanceManager;
writeDyjs                                            ContractProvider;ContractInstanceManager;
authNodeRole                    鎺堟潈瑙掕壊             NodeManager;
changeBDledger                  淇敼璐︽湰閰嶇疆         NodeManager;
changeIpPort                                         NodeManager;
changeNodeCenter                淇敼闆嗙兢鍦板潃         NodeManager;
changeNodeName                                       NodeManager;
changeIpPort                                         NodeManager;
changeDOIPConfig                                     NodeManager;
changeYJSPath                                        NodeManager;
countNodeLogGroupByCategory                          NodeManager;
countRole                                            NodeManager;
deleteRole                                           NodeManager;
downloadUUID                    搴熷純                 NodeManager;
getEncodedUUID                  搴熷純                 NodeManager;
getPeerID                                            NodeManager;
listAllAuthRole                                      NodeManager;
listNodeInfos                                        NodeManager;
listUnAuthRole                                       NodeManager;
loadConfig                                           NodeManager;
loadNodeConfig                                       NodeManager;
lockEdit                                             NodeManager;
unlockEdit                                           NodeManager;
updateConfig                                         NodeManager;
uploadLicence                                        NodeManager;
applyNodeRole                   鐢宠瑙掕壊             浠绘剰瑙掕壊
executeContract                 璋冪敤鍚堢害             浠绘剰瑙掕壊
getConnCount                                         浠绘剰瑙掕壊
getHashAbstractLocally                               浠绘剰瑙掕壊
getHashLocally                                       浠绘剰瑙掕壊
getNodeRoleDeprecated           鏌ヨ褰撳墠瑙掕壊         浠绘剰瑙掕壊
getSessionID                                         浠绘剰瑙掕壊
listAdapters                                         浠绘剰瑙掕壊
listTheContractProcess                               浠绘剰瑙掕壊
login                           鐧诲綍                 浠绘剰瑙掕壊
longStr                                              浠绘剰瑙掕壊
ping                                                 浠绘剰瑙掕壊
queryDataByHash                                      浠绘剰瑙掕壊
queryDataByHashLocally                               浠绘剰瑙掕壊
queryHashByOffset                                    浠绘剰瑙掕壊
queryHashByRequestID                                 浠绘剰瑙掕壊
queryHashSize                                        浠绘剰瑙掕壊
queryLedgers                                         浠绘剰瑙掕壊
queryRole                                            浠绘剰瑙掕壊
queryTransactionByHash                               浠绘剰瑙掕壊
sendTransaction                                      浠绘剰瑙掕壊
setLogStage                                          浠绘剰瑙掕壊
=============================== ==================== =========================================

鍚堢害鍑嗗叆涓績瑙掕壊鍒掑垎
~~~~~~~~~~~~~~~~~~~~

鍏卞垎涓轰袱绫昏鑹诧細CenterManager鍜孨odeManager銆傚叾涓紝CenterManager鎷ユ湁瀵归泦缇よ缃殑鏉冮檺銆�
NodeManager鍙互澧炲姞銆佸垹闄よ妭鐐圭瓑鎿嶄綔銆�

============================= ============ ==========================
鎺ュ彛                          璇存槑         瑙掕壊
============================= ============ ==========================
authNodeManager                            CenterManager;
countActionLogByCategory                   CenterManager;
countCMLogByCategory                       CenterManager;
delete                                     CenterManager;
listAllUsers                               CenterManager;
listApplyList                              CenterManager;
listLicence                                CenterManager;
queryActionLog                             CenterManager;
queryCMLog                                 CenterManager;
updateLicence                              CenterManager;
addNode                                    CenterManager;NodeManager;
changeNCFile                               CenterManager;NodeManager;
changeOtherNC                              CenterManager;NodeManager;
createTrustUnit               鍒涘缓鍙俊闆嗙兢 CenterManager;NodeManager;
deleteTrustUnit                            CenterManager;NodeManager;
getNCFile                                  CenterManager;NodeManager;
getNodeTrustUnits                          CenterManager;NodeManager;
getOtherNC                                 CenterManager;NodeManager;
listContractProcess                        CenterManager;NodeManager;
listMultiPointContractProcess              CenterManager;NodeManager;
listNodes                                  CenterManager;NodeManager;
listTrustUnits                             CenterManager;NodeManager;
queryUserStat                              CenterManager;NodeManager;
stopMultiPointContractProcess              CenterManager;NodeManager;
applyRole                                  NodeManager;
executeContract               璋冪敤鍚堢害     浠绘剰瑙掕壊
executeContractTrustfully                  浠绘剰瑙掕壊
getManagerPubkey                           浠绘剰瑙掕壊
getNodeRole                                浠绘剰瑙掕壊
getNodeSessionID                           浠绘剰瑙掕壊
getRole                                    浠绘剰瑙掕壊
getSessionID                               浠绘剰瑙掕壊
login                         鐧诲綍         浠绘剰瑙掕壊
============================= ============ ==========================

--------------

鍚堢害鑺傜偣Http鎺ュ彛
----------------

``http://xxx.xxx.xxx.xxx:1717/SCIDE/SCManager``\ 涓烘彁渚汬ttp鎺ュ彛鏈嶅姟鐨勬湇鍔″櫒
URL(\ ``xxx.xxx.xxx.xxx:1717``\ 涓築DWare SCIDE杩愯鐨処P鍜岀鍙e彿) ,
鐢ㄦ埛鍙€氳繃鍦║RL鍚庨檮鍔犲瓧娈靛弬鏁�, 瀹屾垚浠ヤ笅鍔熻兘.
``http://xxx.xxx.xxx.xxx:18000/SCIDE/SCManager``
涓烘彁渚汬ttp鎺ュ彛鏈嶅姟鐨勬湇鍔″櫒

URL锛圽 ``xxx.xxx.xxx.xxx:1717`` 涓築DWare
SCIDE杩愯鐨処P鍜岀鍙e彿锛夛紝鐢ㄦ埛鍙€氳繃鍦║RL鍚庨檮鍔犲瓧娈靛弬鏁帮紝瀹屾垚浠ヤ笅鍔熻兘锛�

鐢ㄦ埛绠$悊绫�
~~~~~~~~~~

.. _ping-1:

ping
^^^^

``ping``\ 鏈嶅姟鍣ㄦ祴璇�

鏂规硶
''''

GET

.. _鍙傛暟-2:

鍙傛暟
''''

====== ====
瀛楁   鍊�
====== ====
action ping
====== ====

.. _璇锋眰绀轰緥-2:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=ping

.. _杩斿洖缁撴灉绀轰緥-2:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"data":"pong"}

鍚堢害浠g爜绠$悊绫�
~~~~~~~~~~~~~~

涓嬭浇鍚堢害椤圭洰
^^^^^^^^^^^^

.. _鏂规硶-1:

鏂规硶
''''

GET

.. _鍙傛暟-3:

鍙傛暟
''''

=========== ================
瀛楁        鍊�
=========== ================
action      downloadContract
projectName 鍚堢害椤圭洰鍚�
isPrivate   鏄惁鍦ㄧ鏈夌洰褰曚笅
pubKey      鐢ㄦ埛鍏挜
timestamp   鏃堕棿鎴�
sign        绛惧悕
=========== ================

.. _璇锋眰绀轰緥-3:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=downloadContract&projectName=BDCoin&isPrivate=false&pubKey=0480204f4ef341359a5f64fcb11baf9ca2e6706ac20cba3
   8b7ff78aa631e97346086e2d48fac2ba7f5b75ccbd19ebf495c0e6f9934d69e3b083da4d42e46c991e0c2ea8bb45d59f31f46d0ec700fb01f2fdd275

涓婁紶鏂囦欢
^^^^^^^^

.. _鏂规硶-2:

鏂规硶
''''

POST

.. _鍙傛暟-4:

鍙傛暟
''''

========= ================
瀛楁      鍊�
========= ================
path      鏂囦欢涓婁紶璺緞
fileName  寰呬笂浼犳枃浠跺悕
isPrivate 鏄惁鍦ㄧ鏈夌洰褰曚笅
order     绗嚑涓暟鎹寘
count     鏁版嵁鍖呮€绘暟
timestamp 鏃堕棿鎴�
sign      绛惧悕
========= ================

.. _璇锋眰绀轰緥-4:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/Upload?path=/TEST/TEST.yjs&fileName=WechatIMG15.jpeg&isPrivate=true&order=0&count=3&pubKey=0480204f4ef341359a5f64fcb11baf9ca2e6706ac20cba36ca83066870cf2c1d5de6df67e24e68dde7934af9b31d94a6084281db3d32d5ce42ab8f75bf799aca05&sign=dd867469f5adf9986e4ea6215febeae50c7d4c3836d002cf8c17050dfca031fd2595ffa8646e9eeae53150d2cbaea690e27d818eaf5cea3632ee1b69c3307a4b631e97346086e2d48fac2ba7f5b75ccbd19ebf495c0e6f9934d69e3b083da4d42e46c991e0c2ea8bb45d59f31f46d0ec700fb01f2fdd275

.. _杩斿洖缁撴灉绀轰緥-3:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":"true","data":"success"}

淇濆瓨鍚堢害鑴氭湰
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍚戞湇鍔″櫒鏈湴淇濆瓨鍚堢害鑴氭湰鍐呭.

.. _鏂规硶-3:

鏂规硶
''''

GET

.. _鍙傛暟-5:

鍙傛暟
''''

======= ==============
瀛楁    鍊�
======= ==============
action  writeDyjs
target  鍚堢害鑴氭湰鏂囦欢鍚�
content 鍚堢害鑴氭湰鍐呭
======= ==============

.. _璇锋眰绀轰緥-5:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=writeDyjs&target=testyjs.yjs&content=contract%20shortc%7B%0A%09export%20function%20main(arg)%7B%0A%09%09return%20arg.length%3B%09%0A%09%7D%0A%7D

.. _杩斿洖缁撴灉绀轰緥-4:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "status": false,
       "action": "onWriteDyjs",
       "data": "success"
   }

鍚庣画鐢ㄦ埛鍙惎鍔ㄥ苟璋冪敤璇ュ悎绾�.

鍚堢害瀹炰緥绠$悊绫�
~~~~~~~~~~~~~~

鏌ヨ鍚堢害杩涚▼
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鏌ヨ鏈嶅姟鍣ㄤ笂宸茬粡鍚姩鐨勬墍鏈夊悎绾﹁繘绋�.

.. _鏂规硶-4:

鏂规硶
''''

GET

.. _鍙傛暟-6:

鍙傛暟
''''

====== ===================
瀛楁   鍊�
====== ===================
action listContractProcess
====== ===================

.. _璇锋眰绀轰緥-6:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=listContractProcess

.. _杩斿洖缁撴灉绀轰緥-5:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "status": false,
       "action": "onListContractProcess",
       "data": "[\n  {\n    \"id\": \"-562752842\",\n    \"name\": \"shortc\",\n    \"port\": \"1626\",\n    \"times\": \"0 \",\n    \"traffic\": \"32.00 B\",\n    \"storage\": \"0.00 B\",\n    \"contractStatus\": \"Ready\"\n  }\n]"
   }

鍚姩鍚堢害
^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍚姩鏌愪釜鍚堢害.

.. _鏂规硶-5:

鏂规硶
''''

GET

.. _鍙傛暟-7:

鍙傛暟
''''

====== =================================
瀛楁   鍊�
====== =================================
action startContract
script 鍚堢害鑴氭湰鍐呭, 闇€杩涜杩涜URIEncode
====== =================================

.. _璇锋眰绀轰緥-7:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=startContract&script=contract%20shortc%7B%0A%09export%20function%20main(arg)%7B%0A%09%09return%20arg.length%3B%09%0A%09%7D%0A%7D

.. _杩斿洖缁撴灉绀轰緥-6:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "data": "{\"status\":\"Success\",\"result\":\"\"}",
       "action": "onStartContract",
       "cid": "-562752842",
       "executeTime": 1187
   }

璋冪敤鍚堢害
^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 璋冪敤鏌愪釜鍚堢害.

.. _鏂规硶-6:

鏂规硶
''''

GET

.. _鍙傛暟-8:

鍙傛暟
''''

=================== ===========================
瀛楁                鍊�
=================== ===========================
action              executeContract
contractID          鍚堢害ID
withDynamicAnalysis true/false 鏄惁杩涜鍔ㄦ€佸垎鏋�
operation           璋冪敤鍚堢害鐨勬柟娉曞悕
arg                 璋冪敤鍚堢害鐨勫弬鏁�
pubkey              鍙€夛紝璋冪敤鑰呭叕閽�
signature           鍙€夛紝绛惧悕
=================== ===========================

鍏朵腑pubkey涓簊m2鐨勫叕閽ワ紝璁$畻鏂瑰紡濡備笅锛�

.. code:: javascript

   //sm2 鍙粠sm2.js涓姞杞借幏寰椼€�
   signature = sm2.doSignature(contractID+"|"+operation+"|"+arg+"|"+pubkey,privateKey);

.. _璇锋眰绀轰緥-8:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=executeContract&contractID=-620602333&operation=main&arg=hhh

.. _杩斿洖缁撴灉绀轰緥-7:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "data": "{\"status\":\"Success\",\"result\":\"3\"}",
       "action": "onExecuteResult",
       "executeTime": "13"
   }

鎵归噺鍚姩鍚堢害
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍚姩鏈嶅姟鍣ㄤ腑淇濆瓨鏈夊悎绾﹁剼鏈殑涓€绯诲垪鍚堢害.

.. _鏂规硶-7:

鏂规硶
''''

GET

.. _鍙傛暟-9:

鍙傛暟
''''

======== ====================================
瀛楁     鍊�
======== ====================================
action   startContractBatched
fileList 鍚堢害鑴氭湰鏂囦欢鍒楄〃(Json鏁扮粍,URLEncode)
======== ====================================

.. _璇锋眰绀轰緥-9:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=startContractBatched&fileList=%5B%20%22EventPuber.yjs%22%2C%20%22EventSuber.yjs%22%2C%20%22LicenceManager.yjs%22%20%5D

.. _杩斿洖缁撴灉绀轰緥-8:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"EventPuber.yjs":"{\"status\":\"Success\",\"result\":\"\"}","LicenceManager.yjs":"{\"status\":\"Success\",\"result\":\"\"}","EventSuber.yjs":"{\"status\":\"Success\",\"result\":\"\"}","action":"onStartContract"}

鍚姩Zip鍖呭悎绾�
^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍚姩鏈嶅姟鍣ㄤ腑鍖呰涓篭 ``zip``\ 鏍煎紡鐨勫悎绾�.

.. _鏂规硶-8:

鏂规硶
''''

GET

.. _鍙傛暟-10:

鍙傛暟
''''

========= =======================
瀛楁      鍊�
========= =======================
action    startContractInTempZips
owner     璋冪敤鑰呭叕閽�
path      zip鍚堢害(璺緞鍙�)鏂囦欢鍚�
signature 璋冪敤鑰呯鍚�
========= =======================

.. _璇锋眰绀轰緥-10:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=startContractInTempZips&owner=0475c7b061f32477c1e228dd04143daf58a5574dc3f6b02bd2857cc794eb92bfe98606dc314049e77fd8714f57a5a481cb470cc759e688fe60d40fc87092165e55&path=traceTest.zip&signature=650d3cad50509682937c253d84da99230e8ea1bcfb9b10f6d18f8888c7c4b6b4%2C72231a6daa078a3ce657c0a2ed38251b7db56cf725beaf86780d4c240b19ccc2

.. _杩斿洖缁撴灉绀轰緥-9:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"data":"verify failed","action":"onStartContract"}

鑾峰彇鍚堢害浠g爜
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鏌愪釜ID鍚堢害鐨勮剼鏈唬鐮�.

.. _鏂规硶-9:

鏂规硶
''''

GET

.. _鍙傛暟-11:

鍙傛暟
''''

========== ===========
瀛楁       鍊�
========== ===========
action     getCodeByID
contractID 鍚堢害ID
========== ===========

.. _璇锋眰绀轰緥-11:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=getCodeByID&contractID=814046805

.. _杩斿洖缁撴灉绀轰緥-10:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":true,"action":"onCodeResult","data":"@LogType(\"Arg\")\ncontract EventSuberAtCHQ{\n\t\n  \texport function init(arg){\n\t\tvar result \u003d YancloudUtil.subscribe(\"EventPuberAt3966\",\"abc\",handler);\n       // print(\"Handler:\"+handler);\n  \t \n  \t\treturn result;\n\t}\n  \texport function handler(e){\n        var ret \u003d \"ReceiveEvent:\";\n\t\tret+\u003d\"\\n\";\n      \tprint(ret);\n      \tret+\u003dYancloudUtil.executeContract(\"EventPuberAt3966\",\"notify\",\"success\");\n      \tprint(ret);\n        return ret;\n\t}\n}\n"}

淇濆瓨鍚堢害鐘舵€�
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄧ殑鐘舵€佽浆绉绘棩蹇�.

.. _鏂规硶-10:

鏂规硶
''''

GET

.. _鍙傛暟-12:

鍙傛暟
''''

========== ===================
瀛楁       鍊�
========== ===================
action     dumpContract
contractID 鍚堢害ID 鎴� 鍚堢害Name=
========== ===================

.. _璇锋眰绀轰緥-12:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/SCManager?action=dumpContract&contractID=counter&pubKey=040461417efe01423ba603f71c689387e8aac4aa2a6f7cddfaf22c1d22c40222f7669a054e7ec2e8533b04ccbc7a0e6655ac4ae4acef81a2b1822ec6cabcaf6c1f&sign=3045022004ffd1346b936196f5b13953d2f3e11823a0d0a2d2f6fecea258cef8e20d99c0022100bbc219ed1f56799ba28a763b9e9e47063164e7ceecfbfa752de42f44551ffb83

.. _杩斿洖缁撴灉绀轰緥-11:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"data":"success","size":"3.76 KB","time":"0.03s"}

鑾峰彇鍚堢害鍐呭瓨鏂囦欢鍒楄〃
^^^^^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鏌愬瓙鏂囦欢澶逛腑鐨勬墍鏈夊唴瀛樻枃浠跺垪琛�.

.. _鏂规硶-11:

鏂规硶
''''

GET

.. _鍙傛暟-13:

鍙傛暟
''''

========== ==================
瀛楁       鍊�
========== ==================
action     listMemoryFiles
contractID 鍚堢害Id 鎴� 鍚堢害Name
========== ==================

.. _璇锋眰绀轰緥-13:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/SCManager?action=listMemoryFiles&contractID=-247468535&pubKey=040461417efe01423ba603f71c689387e8aac4aa2a6f7cddfaf22c1d22c40222f7669a054e7ec2e8533b04ccbc7a0e6655ac4ae4acef81a2b1822ec6cabcaf6c1f&sign=3045022075c7268e888b0efdef167a3f4dfc6589d771c6be41b3c0a1dc12d057e811f395022100d44f460d0cc3643e169ef08231e75a1e895646c53295c0ef1d15c3b462a53d6b

.. _杩斿洖缁撴灉绀轰緥-12:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"data":["2020-09-23.18:40:38","2020-09-24.16:03:41","2020-09-24.16:58:39","2020-09-24.18:25:47","2020-09-24.18:32:37","2020-09-24.20:54:41","2020-09-24.20:57:39","2020-09-24.21:31:07","2020-09-24.21:32:09","2020-09-24.21:36:11","2020-09-28.15:29:15","2020-09-28.20:28:29","2020-09-28.20:39:46","2020-09-28.21:45:31","2020-09-28.21:49:18","2020-09-28.22:27:34","2020-09-28.22:31:09","2020-09-28.22:32:49","2020-10-07.16:51:06","2020-10-07.16:51:23","2020-10-25.21:09:10","2020-12-14.19:06:53","2021-02-02.10:28:56","2021-02-02.10:31:13"],"action":"onListMemoryFiles"}

鍋滄鍚堢害
^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍋滄鏌愪釜鍚堢害.

.. _鏂规硶-12:

鏂规硶
''''

GET

.. _鍙傛暟-14:

鍙傛暟
''''

=========== ===================
瀛楁        鍊�
=========== ===================
action      killContractProcess
id          鍚堢害ID
\*requestID 璇锋眰ID, String绫诲瀷
=========== ===================

``*``\ 琛ㄧず鍙€夊弬鏁�

.. _璇锋眰绀轰緥-14:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=killContractProcess&id=-1759263594

.. _杩斿洖缁撴灉绀轰緥-13:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":false,"action":"onListContractProcess","data":"[\n  {\n    \"id\": \"-65051856\",\n    \"name\": \"EventSuber\",\n    \"port\": \"1631\",\n    \"times\": \"0 \",\n    \"traffic\": \"32.00 B\",\n    \"storage\": \"0.00 B\",\n    \"contractStatus\": \"Ready\"\n  },\n  {\n    \"id\": \"814046805\",\n    \"name\": \"EventSuberAtCHQ\",\n    \"port\": \"1630\",\n    \"times\": \"0 \",\n    \"traffic\": \"32.00 B\",\n    \"storage\": \"0.00 B\",\n    \"contractStatus\": \"Ready\"\n  },\n  {\n    \"id\": \"2023975189\",\n    \"name\": \"LicenceService\",\n    \"port\": \"1632\",\n    \"times\": \"0 \",\n    \"traffic\": \"32.00 B\",\n    \"storage\": \"0.00 B\",\n    \"contractStatus\": \"Ready\"\n  },\n  {\n    \"id\": \"-620602333\",\n    \"name\": \"shortc\",\n    \"port\": \"1627\",\n    \"times\": \"0 \",\n    \"traffic\": \"0.00 B\",\n    \"storage\": \"0.00 B\",\n    \"contractStatus\": \"Ready\"\n  }\n]"}

鍋滄鎵€鏈夊悎绾�
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鍋滄鏈嶅姟鍣ㄤ笂鍚姩鐨勬墍鏈夊悎绾�.

.. _鏂规硶-13:

鏂规硶
''''

GET

.. _鍙傛暟-15:

鍙傛暟
''''

====== ===============
瀛楁   鍊�
====== ===============
action killAllContract
====== ===============

.. _璇锋眰绀轰緥-15:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=killAllContract

.. _杩斿洖缁撴灉绀轰緥-14:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":false,"action":"onKillAllContract","data":"Kill:7357,7541,7548,7555,7584,7585,7591,7598,7609,7612,8440,8442,8444,8521,"}

闈欐€佸垎鏋愬悎绾�
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 闈欐€佸垎鏋愬悎绾﹁剼鏈�.

.. _鏂规硶-14:

鏂规硶
''''

GET

.. _鍙傛暟-16:

鍙傛暟
''''

========== ====================
瀛楁       鍊�
========== ====================
action     staticVerifyContract
contractid 鍚堢害ID
script     璇锋眰ID, String绫诲瀷
========== ====================

.. _璇锋眰绀轰緥-16:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=staticVerifyContract&contractid=943728900&script=contract%20shortc%7B%0A%09export%20function%20main(arg)%7B%0A%09%09return%20arg.length%3B%09%0A%09%7D%0A%7D&path=static.yjs

.. _杩斿洖缁撴灉绀轰緥-15:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"data":"{\"status\":\"Success\",\"result\":\"{\\\"main\\\":\\\"Ret:arg \\\"}\"}","action":"onExecuteResult","cid":"943728900","executeTime":54}

鑾峰彇鍚堢害闈欐€佸垎鏋愭祦
^^^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鏌愪釜鍚堢害鐨勯潤鎬佸垎鏋怌ontrol Flow.

.. _鏂规硶-15:

鏂规硶
''''

GET

.. _鍙傛暟-17:

鍙傛暟
''''

====== ========================
瀛楁   鍊�
====== ========================
action getControlFlowByFileName
path   鍚堢害ID
====== ========================

.. _璇锋眰绀轰緥-17:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=getControlFlowByFileName&path=EventSuber.yjs

.. _杩斿洖缁撴灉绀轰緥-16:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"init":{"blocks":[{"type":"Continuous","name":"B0","stmts":["\u003dL0\u003d","aload 0","invokevirtual wrp/jdk/nashorn/internal/runtime/ScriptFunction getScope ()Lwrp/jdk/nashorn/internal/runtime/ScriptObject;"],"original":""},{"type":"Continuous","name":"B1","stmts":["\u003dL1\u003d","astore 4"],"original":""},{"type":"Continuous","name":"B2","stmts":["\u003dL2\u003d","aload 4","invokedynamic dyn:getProp|getElem|getMethod:YancloudUtil (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 5 "],"original":"\t\tvar result \u003d YancloudUtil.subscribe(\"XiaomiSmartHomeAtPKU\",\"onAirPurifierModeChange\",handler);"},{"type":"Continuous","name":"B3","stmts":["dup","invokedynamic dyn:getMethod|getProp|getElem:subscribe (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 0 "],"original":"\t\tvar result \u003d YancloudUtil.subscribe(\"XiaomiSmartHomeAtPKU\",\"onAirPurifierModeChange\",handler);"},{"type":"Continuous","name":"B4","stmts":["swap","ldc XiaomiSmartHomeAtPKU","ldc onAirPurifierModeChange","aload 4","invokedynamic dyn:getProp|getElem|getMethod:handler (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 5 "],"original":"\t\tvar result \u003d YancloudUtil.subscribe(\"XiaomiSmartHomeAtPKU\",\"onAirPurifierModeChange\",handler);"},{"type":"Continuous","name":"B5","stmts":["invokedynamic dyn:call:\\\u003dYancloudUtil\\,subscribe (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 0 "],"original":"\t\tvar result \u003d YancloudUtil.subscribe(\"XiaomiSmartHomeAtPKU\",\"onAirPurifierModeChange\",handler);"},{"type":"Continuous","name":"B6","stmts":["\u003dL3\u003d","astore 5"],"original":"\t\tvar result \u003d YancloudUtil.subscribe(\"XiaomiSmartHomeAtPKU\",\"onAirPurifierModeChange\",handler);"},{"type":"Continuous","name":"B7","stmts":["\u003dL4\u003d","aload 5","areturn"],"original":"  \t\treturn result;"},{"type":"Continuous","name":"B8","stmts":["\u003dL5\u003d"],"original":"  \t\treturn result;"},{"type":"Continuous","name":"B9","stmts":["\u003dL6\u003d"],"original":"  \t\treturn result;"}],"edges":[{"from":"B0","to":"B1","label":{"label":"e"}},{"from":"B1","to":"B2","label":{"label":"e"}},{"from":"B2","to":"B3","label":{"label":"e"}},{"from":"B3","to":"B4","label":{"label":"e"}},{"from":"B4","to":"B5","label":{"label":"e"}},{"from":"B5","to":"B6","label":{"label":"e"}},{"from":"B6","to":"B7","label":{"label":"e"}},{"from":"B7","to":"B9","label":{"label":"e"}}]},"handler":{"blocks":[{"type":"Continuous","name":"B0","stmts":["\u003dL0\u003d","aload 0","invokevirtual wrp/jdk/nashorn/internal/runtime/ScriptFunction getScope ()Lwrp/jdk/nashorn/internal/runtime/ScriptObject;"],"original":""},{"type":"Continuous","name":"B1","stmts":["\u003dL1\u003d","astore 4"],"original":""},{"type":"Continuous","name":"B2","stmts":["\u003dL2\u003d","ldc ReceiveEvent:","aload 2","invokedynamic dyn:getProp|getElem|getMethod:content (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 0 "],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B3","stmts":["invokestatic wrp/jdk/nashorn/internal/runtime/ScriptRuntime ADD (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B4","stmts":["ldc  ","invokestatic wrp/jdk/nashorn/internal/runtime/ScriptRuntime ADD (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B5","stmts":["aload 2","invokedynamic dyn:getProp|getElem|getMethod:type (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 0 "],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B6","stmts":["invokestatic wrp/jdk/nashorn/internal/runtime/ScriptRuntime ADD (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B7","stmts":["\u003dL3\u003d","astore 5"],"original":"        var ret \u003d \"ReceiveEvent:\"+e.content+\" \"+e.type;"},{"type":"Continuous","name":"B8","stmts":["\u003dL4\u003d","aload 4","invokedynamic dyn:getMethod|getProp|getElem:print (Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 5 "],"original":"      \tprint(ret);"},{"type":"Continuous","name":"B9","stmts":["getstatic wrp/jdk/nashorn/internal/runtime/ScriptRuntime UNDEFINED Lwrp/jdk/nashorn/internal/runtime/Undefined;","aload 5","invokedynamic dyn:call:print (Ljava/lang/Object;Lwrp/jdk/nashorn/internal/runtime/Undefined;Ljava/lang/Object;)Ljava/lang/Object; HANDLE:wrp/jdk/nashorn/internal/runtime/linker/Bootstrap.bootstrap(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/CallSite; (6) 5 "],"original":"      \tprint(ret);"},{"type":"Continuous","name":"B10","stmts":["pop"],"original":"      \tprint(ret);"},{"type":"Continuous","name":"B11","stmts":["\u003dL5\u003d","aload 5","areturn"],"original":"        return ret;"},{"type":"Continuous","name":"B12","stmts":["\u003dL6\u003d"],"original":"        return ret;"},{"type":"Continuous","name":"B13","stmts":["\u003dL7\u003d"],"original":"        return ret;"}],"edges":[{"from":"B0","to":"B1","label":{"label":"e"}},{"from":"B1","to":"B2","label":{"label":"e"}},{"from":"B2","to":"B3","label":{"label":"e"}},{"from":"B3","to":"B4","label":{"label":"e"}},{"from":"B4","to":"B5","label":{"label":"e"}},{"from":"B5","to":"B6","label":{"label":"e"}},{"from":"B6","to":"B7","label":{"label":"e"}},{"from":"B7","to":"B8","label":{"label":"e"}},{"from":"B8","to":"B9","label":{"label":"e"}},{"from":"B9","to":"B10","label":{"label":"e"}},{"from":"B10","to":"B11","label":{"label":"e"}},{"from":"B11","to":"B13","label":{"label":"e"}}]}}

鏃ュ織鏌ョ湅绫�
~~~~~~~~~~

鍚堢害鏃ュ織-鏌ヨ鏁伴噺
^^^^^^^^^^^^^^^^^

.. _鏂规硶-16:

鏂规硶
''''

GET

contractName涓虹┖鎴栨槸涓嶄紶鍏ユ椂锛屽垯涓烘煡璇㈠叏閮ㄥ悎绾︾殑鏉℃暟

.. _鍙傛暟-18:

鍙傛暟
''''

============ ========================
瀛楁         鍊�
============ ========================
action       queryContractLogSize
contractName 瀛楃涓诧紝闈炲繀椤伙紝鍚堢害鍚嶇О
============ ========================

.. _璇锋眰绀轰緥-18:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryContractLogSize&contractName=NanningDataSource

.. _杩斿洖缁撴灉绀轰緥-17:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "size": 12,
       "action": "onQueryContractLogSize",
       "status": "success"
   }

鍚堢害鏃ュ織-鏍规嵁鏃ユ湡鏌ヨ
^^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-17:

鏂规硶
''''

GET

.. _鍙傛暟-19:

鍙傛暟
''''

============ =====================================
瀛楁         鍊�
============ =====================================
action       queryContractLogByDate
start        long锛屽繀椤伙紝璧峰鏃堕棿
end          long锛岄潪蹇呴』锛岃嫢鏃爀nd锛岄粯璁や负褰撳墠鏃堕棿
contractName 瀛楃涓诧紝闈炲繀椤伙紝鍚堢害鍚嶇О
============ =====================================

.. _璇锋眰绀轰緥-19:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryContractLogByDate&start=1597296300272&end=1597296305747

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "getMainFrame",
               "costTime": "2493",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296300272,
               "key": "-8590335427581967208"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "loadResource",
               "costTime": "732",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296301030,
               "key": "849660532962309239"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "loadResource",
               "costTime": "4580",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305745,
               "key": "-8003529429500512736"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "loadResource",
               "costTime": "4551",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305746,
               "key": "7604666709899222357"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "loadResource",
               "costTime": "6",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305751,
               "key": "-7561786202695627022"
           }
       ],
       "action": "onQueryRecentContractLog"
   }

鍚堢害鏃ュ織-鏍规嵁鍋忕Щ閲忔煡璇�
^^^^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-18:

鏂规硶
''''

GET

.. _鍙傛暟-20:

鍙傛暟
''''

============ =============================================
瀛楁         鍊�
============ =============================================
action       queryContractLogByOffset
count        long锛屽繀椤伙紝鑾峰彇鏃ュ織鏉℃暟
offset       long锛岄潪蹇呴』锛岃嫢鏃爋ffset锛岄粯璁よ繑鍥炴渶鏂癱ount鏉�
contractName 瀛楃涓诧紝闈炲繀椤伙紝鍚堢害鍚嶇О
============ =============================================

.. _璇锋眰绀轰緥-20:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryContractLogByOffset&count=5&contractName=NanningDataSource

.. _杩斿洖缁撴灉-1:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "loadResource",
               "costTime": "4",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305842,
               "key": "-2390672423847654148"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "isOwner",
               "costTime": "4",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305868,
               "key": "6056586201629372511"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "getApplyList",
               "costTime": "6",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305893,
               "key": "3882409580676458151"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "getAcceptList",
               "costTime": "4",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "date": 1597296305908,
               "key": "-3437513873417136535"
           },
           {
               "action": "executeContract",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "contractID": "-1382208250",
               "contractName": "NanningDataSource",
               "function": "analysisByIndustry",
               "costTime": "6",
               "totalGas": "0",
               "executionGas": "0",
               "extraGas": "0",
               "signature": "4c2cef1756b2b591ab7eead19d67331e2294c7ba765c72298733c306ada0b6e84afbb6c7b9dba48b9843236ebe67aecb4af09fe58a51eef0e2e89b9f3e5cad02",
               "arg": " {\"year\":2018,\"category\":\"宸ヤ笟\",\"indexType\":\"钀ヤ笟棰漒"}",
               "date": 1597296314654,
               "key": "203156239086062402"
           }
       ],
       "action": "onQueryRecentContractLog"
   }

鍚堢害鏃ュ織-鏍规嵁key鏌ヨ
^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-19:

鏂规硶
''''

GET

.. _鍙傛暟-21:

鍙傛暟
''''

====== ===========================
瀛楁   鍊�
====== ===========================
action queryContractLogByKey
key    long锛屽繀椤伙紝璇ユ棩蹇楀搴旂殑key
====== ===========================

.. _璇锋眰绀轰緥-21:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryContractLogByKey&key=203156239086062402

.. _杩斿洖缁撴灉-2:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": {
           "action": "executeContract",
           "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
           "contractID": "-1382208250",
           "contractName": "NanningDataSource",
           "function": "analysisByIndustry",
           "costTime": "6",
           "totalGas": "0",
           "executionGas": "0",
           "extraGas": "0",
           "signature": "4c2cef1756b2b591ab7eead19d67331e2294c7ba765c72298733c306ada0b6e84afbb6c7b9dba48b9843236ebe67aecb4af09fe58a51eef0e2e89b9f3e5cad02",
           "arg": " {\"year\":2018,\"category\":\"宸ヤ笟\",\"indexType\":\"钀ヤ笟棰漒"}",
           "date": 1597296314654
       },
       "action": "onQueryContractLogByKey"
   }

鍚堢害鏃ュ織-鎸夋椂闂存缁熻璋冪敤娆℃暟
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-20:

鏂规硶
''''

GET

.. _鍙傛暟-22:

鍙傛暟
''''

======== ========================================================
瀛楁     鍊�
======== ========================================================
action   countContractLogGroupByCategory
start    long锛屽繀椤伙紝璧峰鏃堕棿
end      闈炲繀椤伙紝缁堟鏃堕棿锛岄粯璁や负褰撳墠
interval long锛岄潪蹇呴』锛岀粺璁¢棿闅�
category 闈炲繀椤伙紝鍚堢害鍚嶇О浠ラ€楀彿杩炴帴锛屼笉浼犲叆鏃剁粺璁″叏閮ㄥ悎绾﹁皟鐢ㄦ儏鍐�
======== ========================================================

.. _璇锋眰绀轰緥-22:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=countContractLogGroupByCategory&start=1596758400000&interval=86400000

.. _杩斿洖缁撴灉-3:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "start": 1596758400000,
       "interval": 86400000,
       "action": "onCountContractLogGroupByCategory",
       "data": [
           0,
           0,
           0,
           0,
           0,
           0,
           43,
           14
       ]
   }

璐︽湰鏃ュ織-鏌ヨ鏁伴噺
^^^^^^^^^^^^^^^^^

鏌ヨ閫氳繃鏈妭鐐瑰幓璐︽湰涓婅褰曠殑鏃ュ織鏁伴噺

.. _鏂规硶-21:

鏂规硶
''''

GET

.. _鍙傛暟-23:

鍙傛暟
''''

============ ================
瀛楁         鍊�
============ ================
action       queryHashSize
contractName 闈炲繀椤伙紝鍚堢害鍚嶇О
============ ================

.. _璇锋眰绀轰緥-23:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryHashSize&contractName=NanningDataSource

.. _杩斿洖缁撴灉-4:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "count": "2",
       "action": "onQueryHashSize"
   }

璐︽湰鏃ュ織-鏍规嵁鍋忕Щ閲忔煡璇�
^^^^^^^^^^^^^^^^^^^^^^^

鏌ヨx鏉¢€氳繃鏈妭鐐瑰幓璐︽湰涓婅褰曠殑鏃ュ織鐨勫搱甯屽垪琛�

.. _鏂规硶-22:

鏂规硶
''''

GET

.. _鍙傛暟-24:

鍙傛暟
''''

============ ===========================================================
瀛楁         鍊�
============ ===========================================================
action       queryHashByOffset
count        鏁存暟锛屽繀椤�,琛ㄧず鏉℃暟
offset       鏁存暟锛岄潪蹇呴』锛岃〃绀哄亸绉婚噺锛屼笉浼犲叆offset鍒欓粯璁よ繑鍥炴渶鏂癱ount鏉�
contractName 瀛楃涓诧紝闈炲繀椤伙紝琛ㄧず鍚堢害鍚嶇О
============ ===========================================================

.. _璇锋眰绀轰緥-24:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryHashByOffset&count=1&contractName=NanningDataSource

.. _杩斿洖缁撴灉-5:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "hash": "3a6c60621907146b77146c1f2d48700e47520173",
               "date": 1597296314658
           }
       ],
       "action": "onQueryHash",
       "status": "success"
   }

璐︽湰鏃ュ織-鏍规嵁hash鏌ヨ璇︽儏
^^^^^^^^^^^^^^^^^^^^^^^^^

鏍规嵁hash鏉ユ煡璇㈡棩蹇楀唴瀹�

.. _鏂规硶-23:

鏂规硶
''''

GET

.. _鍙傛暟-25:

鍙傛暟
''''

====== ===============================
瀛楁   鍊�
====== ===============================
action queryDataByHash
hash   瀛楃涓诧紝鍙€氳繃queryHashByOffset
====== ===============================

.. _璇锋眰绀轰緥-25:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryDataByHash&count=1&contractName=NanningDataSource&hash=3a6c60621907146b77146c1f2d48700e47520173

.. _杩斿洖缁撴灉-6:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "from": "0x3034643139323433323966373263656431343866",
       "to": "0x65786563757465436f6e74726163740000000000",
       "data": "1597296314655 --> {\"extraGas\":\"0\",\"totalGas\":\"0\",\"executionGas\":\"0\",\"signature\":\"4c2cef1756b2b591ab7eead19d67331e2294c7ba765c72298733c306ada0b6e84afbb6c7b9dba48b9843236ebe67aecb4af09fe58a51eef0e2e89b9f3e5cad02\",\"costTime\":\"6\",\"arg\":\" {\\\\\\\"year\\\\\\\":2018,\\\\\\\"category\\\\\\\":\\\\\\\"宸ヤ笟\\\\\\\",\\\\\\\"indexType\\\\\\\":\\\\\\\"钀ヤ笟棰漒\\\\\\"}\",\"contractID\":\"-1382208250\",\"action\":\"analysisByIndustry\",\"pubKey\":\"04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd\"}",
       "requestID": "1597296314629_6067",
       "action": "onQueryDataByHash"
   }

璐︽湰鏃ュ織-鏍规嵁requestID鏌ヨHash
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

鏍规嵁requestID鏉ユ煡璇㈡棩蹇楀唴瀹癸紝闇€鐢卞紑鍙戣€呬繚璇乺equestID鐨勫敮涓€鎬�

.. _鏂规硶-24:

鏂规硶
''''

GET

.. _鍙傛暟-26:

鍙傛暟
''''

========= ========================
瀛楁      鍊�
========= ========================
action    queryHashByRequestID
requestID 瀛楃涓诧紝鍦ㄥ彂璧疯皟鐢ㄦ椂鐢熸垚
========= ========================

.. _璇锋眰绀轰緥-26:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=queryHashByRequestID&requestID=0987654321ab

鑺傜偣鏃ュ織-鏌ヨ鏁伴噺
^^^^^^^^^^^^^^^^^

.. _鏂规硶-25:

鏂规硶
''''

GET

.. _鍙傛暟-27:

鍙傛暟
''''

======== ============================
瀛楁     鍊�
======== ============================
action   queryNodeLogSize
category 闈炲繀椤伙紝涓嶄紶鍏ユ椂鏌ヨ鍏ㄩ儴鎯呭喌
======== ============================

鍏朵腑鍖呮嫭锛歱ing銆乻tartContract銆乻aveFile绛夈€�

.. _璇锋眰绀轰緥-27:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryNodeLogSize

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryNodeLogSize&category=login

.. _杩斿洖缁撴灉-7:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "size": 177,
       "action": "onQueryNodeLogSize",
       "status": "success"
   }

鑺傜偣鏃ュ織-鎸夋棩鏈熸煡璇�
^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-26:

鏂规硶
''''

GET

.. _鍙傛暟-28:

鍙傛暟
''''

======== ============================
瀛楁     鍊�
======== ============================
action   queryNodeLogByDate
start    long锛屽繀椤伙紝璧峰鏃ユ湡
end      long锛岄潪蹇呴』
category 闈炲繀椤伙紝涓嶄紶鍏ユ椂鏌ヨ鍏ㄩ儴鎯呭喌
======== ============================

.. _璇锋眰绀轰緥-28:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryNodeLogByDate&start=1597376006441

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryNodeLogByDate&start=1596758400000&category=login

.. _杩斿洖缁撴灉-8:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "action": "listAllAuthRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006438,
               "key": "387355870552374748"
           },
           {
               "action": "listUnAuthRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006441,
               "key": "4772693258708933626"
           },
           {
               "action": "countRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006444,
               "key": "-6425375229108830572"
           },
           {
               "action": "loadNodeConfig",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006448,
               "key": "-6602401010405792959"
           },
           {
               "action": "getPeerID",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006449,
               "key": "-7006776427870311552"
           }
       ],
       "action": "onQueryNodeLogByDate"
   }

鑺傜偣鏃ュ織-鎸夊亸绉婚噺鏌ヨ
^^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-27:

鏂规硶
''''

GET

.. _鍙傛暟-29:

鍙傛暟
''''

============ =============================================
瀛楁         鍊�
============ =============================================
action       queryNodeLogByOffset
count        long锛屽繀椤伙紝鑾峰彇鏃ュ織鏉℃暟
offset       long锛岄潪蹇呴』锛岃嫢鏃爋ffset锛岄粯璁よ繑鍥炴渶鏂癱ount鏉�
contractName 瀛楃涓诧紝闈炲繀椤伙紝鍚堢害鍚嶇О
============ =============================================

.. _璇锋眰绀轰緥-29:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=queryNodeLogByOffset&count=5

.. _杩斿洖缁撴灉-9:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "action": "listAllAuthRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006438,
               "key": "387355870552374748"
           },
           {
               "action": "listUnAuthRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006441,
               "key": "4772693258708933626"
           },
           {
               "action": "countRole",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006444,
               "key": "-6425375229108830572"
           },
           {
               "action": "loadNodeConfig",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006448,
               "key": "-6602401010405792959"
           },
           {
               "action": "getPeerID",
               "pubKey": "04d1924329f72ced148f6f333fb985ccbaa31b1e3aacf10be5f43d4a4ff5ad88899a005e79e37fc06993e1d66ada8cf8b711cb36f59538bb7d3e39e70fa9360ddd",
               "status": "accept",
               "date": 1597376006449,
               "key": "-7006776427870311552"
           }
       ],
       "action": "onQueryNodeLogByOffset"
   }

鑺傜偣鏃ュ織-鎸夋椂闂存缁熻璋冪敤娆℃暟
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. _鏂规硶-28:

鏂规硶
''''

GET

.. _鍙傛暟-30:

鍙傛暟
''''

======== ==================================================
瀛楁     鍊�
======== ==================================================
action   countLogGroupByCategory
start    long锛屽繀椤伙紝璧峰鏃堕棿
end      闈炲繀椤伙紝缁堟鏃堕棿锛岄粯璁や负褰撳墠
interval long锛岄潪蹇呴』锛岀粺璁¢棿闅�
category 闈炲繀椤伙紝action浠ラ€楀彿杩炴帴锛屼笉浼犲叆鏃剁粺璁″叏閮ㄨ皟鐢ㄦ儏鍐�
======== ==================================================

鍏朵腑锛宑ategory涓殑action涓篘odePortal鐨勬帴鍙g殑action闆嗗悎銆�
鍖呮嫭锛歱ing銆乻tartContract銆乻aveFile绛夈€�

.. _璇锋眰绀轰緥-30:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:18000/SCIDE/CMManager?action=countNodeLogGroupByCategory&start=1596758400000&interval=86400000

   http://127.0.0.1:18000/SCIDE/CMManager?action=countNodeLogGroupByCategory&start=1596758400000&interval=86400000&category=ping,startContract

.. _杩斿洖缁撴灉-10:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "start": 1596758400000,
       "interval": 86400000,
       "action": "onCountNodeLogGroupByCategory",
       "data": [
           0,
           0,
           0,
           0,
           0,
           0,
           912,
           761
       ]
   }

杈撳嚭鍘嗗彶璁板綍鏃ュ織
^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄤ笂鍚堢害鐨凾imeTravel鏃ュ織.

.. _鏂规硶-29:

鏂规硶
''''

GET

.. _鍙傛暟-31:

鍙傛暟
''''

====== ==================
瀛楁   鍊�
====== ==================
action printTimeTravelLog
====== ==================

.. _璇锋眰绀轰緥-31:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=printTimeTravelLog

.. _杩斿洖缁撴灉绀轰緥-18:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":false,"data":"[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps/aa\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps/aa_1572335939893.dyjs\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps/memoryDumps\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps/.\n[CMActions] memory dir \u003d /Users/oliveds/docs/SmartContract/contractExamples/memoryDumps/.\n"}

杈撳嚭鑺傜偣杞Щ鏃ュ織
^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄧ殑鐘舵€佽浆绉绘棩蹇�.

.. _鏂规硶-30:

鏂规硶
''''

GET

.. _鍙傛暟-32:

鍙傛暟
''''

====== ================
瀛楁   鍊�
====== ================
action printTransferLog
====== ================

.. _璇锋眰绀轰緥-32:

璇锋眰绀轰緥
''''''''

::

   http://127.0.0.1:1717/SCIDE/SCManager?action=printTransferLog

.. _杩斿洖缁撴灉绀轰緥-19:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {"status":false,"data":""}

妯℃澘鐢熸垚绫�
~~~~~~~~~~

--------------

鍚堢害鑺傜偣WebSocket鎺ュ彛
---------------------

.. _鐢ㄦ埛绠$悊绫�-1:

鐢ㄦ埛绠$悊绫�
~~~~~~~~~~

鑾峰彇Session
^^^^^^^^^^^

鐧诲綍鍓嶈幏鍙杝ession浠ヤ究杩涜绛惧悕銆�

.. _鍙傛暟-33:

鍙傛暟
''''

====== ============
瀛楁   鍊�
====== ============
action getSessionID
====== ============

.. _璇锋眰绀轰緥-33:

璇锋眰绀轰緥
''''''''

::

   var req = {};
   req.action = "getSessionID";
   wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-11:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onSessionID",
       "session": "9782323_session"
   }

鐢ㄦ埛鐧诲綍
^^^^^^^^

鐢ㄦ埛杩涜鍏閽ヨ韩浠介獙璇�

.. _鍙傛暟-34:

鍙傛暟
''''

====== =====
瀛楁   鍊�
====== =====
action login
====== =====

.. _璇锋眰绀轰緥-34:

璇锋眰绀轰緥
''''''''

::

   var loginParam = {};
   loginParam.pubKey = global.sm2Key.publicKey;
   loginParam.signature = sm2.doSignature(global.session,
               global.sm2Key.privateKey);
   loginParam.action = "login";
   wssocket.send(JSON.stringify(loginParam));

.. _杩斿洖缁撴灉-12:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onLogin",
       "data": "NodeManager,ContractProvider"
   }

鐢宠瑙掕壊
^^^^^^^^

鍦ㄨ妭鐐圭鐞嗗憳鐣岄潰鐢宠鍙互鐢宠绉颁负鍚堢害绠$悊鍛�(ContractInstanceManager)銆佸悎绾︿娇鐢ㄨ€�(ContractUser)銆佸悎绾︽彁渚涜€咃紙ContractProvider)

.. _鍙傛暟-35:

鍙傛暟
''''

====== =============
瀛楁   鍊�
====== =============
action applyNodeRole
role   鐢宠瑙掕壊鍚嶇О
====== =============

.. _璇锋眰绀轰緥-35:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "applyNodeRole";
   param.role = "ContractUser";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-13:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onApplyRole",
       "data": "success"
   }

   {
       "action":"onApplyRole",
       "data":"already has!"
   }

鎺堟潈瑙掕壊
^^^^^^^^

.. _鍙傛暟-36:

鍙傛暟
''''

======== ====================
瀛楁     鍊�
======== ====================
action   authNodeRole
isAccept bool绫诲瀷锛岃〃绀哄惁鎺堟潈
pubKey   鎺堟潈鐢ㄦ埛鍏挜
======== ====================

.. _璇锋眰绀轰緥-36:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "authNodeRole";
   param.isAccept = true;
   param.pubKey = "xxxxx";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-14:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onAuthNodeRole",
       "data": "success"
   }

鍒犻櫎鐢ㄦ埛瑙掕壊
^^^^^^^^^^^^

.. _鍙傛暟-37:

鍙傛暟
''''

====== ============
瀛楁   鍊�
====== ============
action deleteRole
role   鍒犻櫎瑙掕壊鍚嶇О
====== ============

.. _璇锋眰绀轰緥-37:

璇锋眰绀轰緥
''''''''

::

   var deleteInfo = {};
   deleteInfo.pubKey = global.authorizedUsers.[publicKey];
   deleteInfo.action = "deleteRole";
   deleteInfo.role="ContractUser";
   wssocket.send(JSON.stringify(deleteInfo));

.. _杩斿洖缁撴灉-15:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onDeleteRole",
       "data": "success"
   }

鏌ョ湅鎺堟潈鐢ㄦ埛鍒楄〃
^^^^^^^^^^^^^^^^

鏌ョ湅鍑嗗叆绠$悊鍛樺綋鍓嶇粍缃戜腑宸茬粡鎺堟潈鐨勮妭鐐圭鐞嗗憳

.. _鍙傛暟-38:

鍙傛暟
''''

====== ===============
瀛楁   鍊�
====== ===============
action listAllAuthRole
====== ===============

.. _璇锋眰绀轰緥-38:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "listAllAuthRole";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-16:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status":false,
       "action":"onListAllAuthRole",
       "data":
       {
           "kv":[{"key":"04eafad549d0757cf67f360815e15e157c7428c9ea9fb933f31a5d45bfb6edd9809c5bf6a5f37d7b817207f19fb2d76b7dbdefe38084cd3282e37b9ac39959dfab",
                 "value":"NodeManager,ContractProvider,ContractUser,ContractInstanceManager"}],
           "time":[{"key":"04eafad549d0757cf67f360815e15e157c7428c9ea9fb933f31a5d45bfb6edd9809c5bf6a5f37d7b817207f19fb2d76b7dbdefe38084cd3282e37b9ac39959dfab",
                   "value":"1617178709933"}]
       }
   }

鏌ョ湅鐢宠鐢ㄦ埛鍒楄〃
^^^^^^^^^^^^^^^^

.. _鍙傛暟-39:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action listUnAuthRole
====== ==============

.. _璇锋眰绀轰緥-39:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "listUnAuthRole";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-17:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onListUnAuthRole",
        "kv": [{
           "key": "049999ebd14ff3b96ebf7f7325e1da94a1c4c376573a1dc1cec2b4f7a3b09ed7b07252134e93b6ac2e1853268b82f4b541d34fb42b0182cd61043e99d3489e2cf7",
           "value": "ContractProvider,ContractUser"
       }],
       "time": [{
           "key": "049999ebd14ff3b96ebf7f7325e1da94a1c4c376573a1dc1cec2b4f7a3b09ed7b07252134e93b6ac2e1853268b82f4b541d34fb42b0182cd61043e99d3489e2cf7",
           "value": "1587398989914"
       }]
   }

鍙傛暟(鍒犻櫎)
''''''''''

====== =============
瀛楁   鍊�
====== =============
action queryUserStat
====== =============

.. _璇锋眰绀轰緥-40:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "queryUserStat";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-18:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onQueryUserStat",
       "userListCount": 3,
       "applyListCount":0
   }

.. _鍚堢害浠g爜绠$悊绫�-1:

鍚堢害浠g爜绠$悊绫�
~~~~~~~~~~~~~~

鑾峰彇鍏叡鍚堢害鏂囦欢鍒楄〃
^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-40:

鍙傛暟
''''

====== ============
瀛楁   鍊�
====== ============
action listProjects
====== ============

.. _璇锋眰绀轰緥-41:

璇锋眰绀轰緥
''''''''

::

   var request = {};
   request.action = "listProjects";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-19:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onListProjects",
       "data":"[\"AnnotationSample\",\"AppDataAnalysis\",\"AppDataSource\",\"BiddingExample\",\"ContractExecutor\"]",
       "executeTime":0,
       "isPrivate":false
   }

鑾峰彇绉佹湁鍚堢害鏂囦欢鍒楄〃
^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-41:

鍙傛暟
''''

========= ============
瀛楁      鍊�
========= ============
action    listProjects
pubKey    璇ョ敤鎴风殑鍏挜
isPrivate true
========= ============

.. _璇锋眰绀轰緥-42:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "listProjects";
   request.pubKey = "global.sm2.publicKey";
   request.isPrivate=true;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-20:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onListProjects",
       "data":"[\"CSVFromTemplate\",\"Empty22\",\"MySQLFromTemplate\",\"test\"]",
       "executeTime":0,
       "isPrivate":true
   }

鑾峰彇鍚堢害瀹炰緥
^^^^^^^^^^^^

.. _鍙傛暟-42:

鍙傛暟
''''

====== ===================
瀛楁   鍊�
====== ===================
action listContractProcess
====== ===================

.. _璇锋眰绀轰緥-43:

璇锋眰绀轰緥
''''''''

::

   var request = {};
   request.action = "listContractProcess";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-21:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status":false,
       "action":"onListContractProcess",
       "data":"[{\"id\": \"1658407837\",\"name\": \"BDCoin\",\"port\": \"1617\"}]"
   }

.. _鍚姩鍚堢害-1:

鍚姩鍚堢害
^^^^^^^^

.. _鍙傛暟-43:

鍙傛暟
''''

========= =============
瀛楁      鍊�
========= =============
action    startContract
owner     pubkey
requestID 褰撳墠鏃堕棿
script    鑴氭湰鍐呭
signature 绛惧悕
========= =============

.. _璇锋眰绀轰緥-44:

璇锋眰绀轰緥
''''''''

::

   request.action = "startContract";
   request.owner = global.sm2Key.publicKey;
   request.requestID = new Date().getTime() + "";
   request.script = global.projectScript;
   request.signature = sm2.doSignature("Algorithm|" + request.script + "|" + global.sm2Key.publicKey, global.sm2Key.privateKey);
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-22:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data":"{\"needSeq\":false,\"seq\":0,\"status\":\"Success\",\"result\":\"\",\"isInsnLimit\":false,\"totalGas\":0,\"executionGas\":0,\"extraGas\":0,\"size\":0,\"eventRelated\":false}",
       "action":"onStartContract",
       "cid":"-506393888",
       "executeTime":2496,
       "responseID":"1617206735696"
   }

鍒嗗彂鍚堢害椤圭洰
^^^^^^^^^^^^

.. _鍙傛暟-44:

鍙傛暟
''''

============= ==================
瀛楁          鍊�
============= ==================
action        distributeContract
peersID       闆嗙兢涓妭鐐筽eer
projectName   鍚堢害鍚�
isPrivate     鏄惁鍦ㄧ鏈夌洰褰�
sponsorPeerID 鍙戣捣鑰匢D
signature     绛惧悕
============= ==================

.. _璇锋眰绀轰緥-45:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   request.action = "distributeContract";
   request.peersID = peersID;
   request.projectName = global.projects[global.lastClickedProjectId];
   request.isPrivate = $("#privateDir-tab").hasClass("active"); 
   request.sponsorPeerID = global.peerID;
   request.signature = sm2.doSignature("DistributeContract|" + request.projectName + "|" + global.sm2Key.publicKey, global.sm2Key.privateKey);  
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-23:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onDistributeContract",
       "progress":"100.00%"
   }

缁堟鍚堢害
^^^^^^^^

.. _鍙傛暟-45:

鍙傛暟
''''

========= ===================
瀛楁      鍊�
========= ===================
action    killContractProcess
id        鍚堢害id
requestID 璇锋眰ID
========= ===================

.. _璇锋眰绀轰緥-46:

璇锋眰绀轰緥
''''''''

::

   request.action = "killContractProcess";
   request.id = contractid;
   request.requestID = new Date().getTime() + "";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-24:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": "ContractHandler: exit in 3 seconds!",
       "action": "onOutputStream"
   }

缁堟鎵€鏈夊悎绾�
^^^^^^^^^^^^

.. _鍙傛暟-46:

鍙傛暟
''''

====== ===============
瀛楁   鍊�
====== ===============
action killAllContract
====== ===============

.. _璇锋眰绀轰緥-47:

璇锋眰绀轰緥
''''''''

::

   request.action = "killAllContract";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-25:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status":false,
       "action":"onKillAllContract",
       "data":"Kill:7241,7245,"
   }

.. _闈欐€佸垎鏋愬悎绾�-1:

闈欐€佸垎鏋愬悎绾�
^^^^^^^^^^^^

.. _鍙傛暟-47:

鍙傛暟
''''

========== ====================
瀛楁       鍊�
========== ====================
action     staticVerifyContract
owner      鐢ㄦ埛绉侀挜
isPartial  鏄惁鏄儴鍒�
contractid contractid
script     鑴氭湰鍐呭
path       鍚堢害鏂囦欢鍚�
========== ====================

.. _璇锋眰绀轰緥-48:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   request.action = "staticVerifyContract";
   request.owner = global.sm2Key.privateKey
   request.isPartial = false;
   request.contractid = contractid;
   request.script = global.projectScript;
   request.path = global.projectName;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-26:

杩斿洖缁撴灉
''''''''

.. code:: json


   {
       "data":"{\"needSeq\":false,\"seq\":0,\"status\":\"Success\",\"result\":{\"hello\":\"Ret:\"},\"isInsnLimit\":false,\"totalGas\":0,\"executionGas\":0,\"extraGas\":0,\"size\":0,\"eventRelated\":false}",
       "action":"onStaticVerifyResult",
       "cid":"verify",
       "executeTime":83
   }

鍒犻櫎鍚堢害
^^^^^^^^

.. _鍙傛暟-48:

鍙傛暟
''''

====== ==========
瀛楁   鍊�
====== ==========
action deleteFile
file   fileName
====== ==========

.. _璇锋眰绀轰緥-49:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   request.action = "deleteFile";
   request.file = fileName;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-27:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onDeleteFile",
       "data":"success",
       "executeTime":0
   }

绉佹湁鍚堢害浼犺嚦鍏叡鐩綍
^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-49:

鍙傛暟
''''

======== ============
瀛楁     鍊�
======== ============
action   changePublic
pubkey   鐢ㄦ埛鍏挜
fileName fileName
======== ============

.. _璇锋眰绀轰緥-50:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   request.action = "changePublic";
   request.pubkey = pubkey;
   request.fileName = fileName;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-28:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onChangePublic",
       "data":"success",
       "executeTime":0
   }

涓婁紶鍚堢害
^^^^^^^^

.. _鍙傛暟-50:

鍙傛暟
''''

========= ========================
瀛楁      鍊�
========= ========================
action    UploadFile
isAppend  false
fileName  fileName
path      path
isPrivate true/false
content   fileContent(base64缂栫爜锛�
========= ========================

.. _璇锋眰绀轰緥-51:

璇锋眰绀轰緥
''''''''

::

   request.action = "uploadFile";
   request.isAppend = false;
   request.fileName = "test1.yjs";
   request.path = "test1";
   text="Y29udHJhY3QgdGVzdDF7CglleHBvcnQgZnVuY3Rpb24gaGVsbG8oYXJnKXsgCiAgICAgICAgcmV0dXJuICJ3b3JsZCI7ICAKICAgIH0gICAKfQ=="
   request.content = text;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-29:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onUploadFile",
       "data":"success",
       "executeTime":0
   }

缂栬瘧鍚堢害
^^^^^^^^

.. _鍙傛暟-51:

鍙傛暟
''''

========== ==========================
瀛楁       鍊�
========== ==========================
action     compile
path       string, 寰呯紪璇戠殑椤圭洰鍚嶇О
privateTab bool, 鏄惁涓虹鏈夌洰褰曠殑椤圭洰
========== ==========================

.. _璇锋眰绀轰緥-52:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {"action":"compile","path":"Hello","privateTab":true}

.. _杩斿洖缁撴灉-30:

杩斿洖缁撴灉
''''''''

.. code:: json

   {"result":"Hello_2020-08-17-09:09:40.ypk","action":"onCompile"}

閿佸畾绉佹湁鐩綍
^^^^^^^^^^^^

閿佸畾鏌愪釜鐢ㄦ埛鐨勭殑绉佹湁鐩綍缂栬緫鍔熻兘

.. _鍙傛暟-52:

鍙傛暟
''''

====== ======================
瀛楁   鍊�
====== ======================
action lockEdit
pubKey string, 瑕佽閿佸畾鐨勫叕閽�
====== ======================

.. _璇锋眰绀轰緥-53:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {};
   req.action = "lockEdit";
   req.pubKey = "xxxxxx";
   wssocket.send(JSON.stringify(req));

.. code:: json

   {
       "action":"onLockEdit",
       "status":"success",
       "data":"04c4c855862b53f323e077ccfcc744ecc2c0a04645ed16d99ede8fd5866b38c0670a97ad22c6260d1a4672aba2a5fe229a2d4eba34627c054aab102620afa288c1"
   }

瑙i攣绉佹湁鐩綍
^^^^^^^^^^^^

瑙i攣鏌愪釜鐢ㄦ埛鐨勭殑绉佹湁鐩綍缂栬緫鍔熻兘

.. _鍙傛暟-53:

鍙傛暟
''''

====== ======================
瀛楁   鍊�
====== ======================
action unLockEdit
pubKey string, 瑕佽閿佸畾鐨勫叕閽�
====== ======================

.. _璇锋眰绀轰緥-54:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {};
   req.action = unlockEdit;
   req.pubKey = "xxxxxx";
   wssocket.send(JSON.stringify(req));

.. code:: json

   {
       "action":"onUnlockEdit",
       "status":"success",
       "data":"04c4c855862b53f323e077ccfcc744ecc2c0a04645ed16d99ede8fd5866b38c0670a97ad22c6260d1a4672aba2a5fe229a2d4eba34627c054aab102620afa288c1"
   }

.. _鍚堢害瀹炰緥绠$悊绫�-1:

鍚堢害瀹炰緥绠$悊绫�
~~~~~~~~~~~~~~

.. _鏌ヨ鍚堢害杩涚▼-1:

鏌ヨ鍚堢害杩涚▼
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鏌ヨ鏈嶅姟鍣ㄤ笂宸茬粡鍚姩鐨勬墍鏈夊悎绾﹁繘绋�.

.. _鍙傛暟-54:

鍙傛暟
''''

====== ===================
瀛楁   鍊�
====== ===================
action listContractProcess
====== ===================

.. _璇锋眰绀轰緥-55:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "listContractProcess";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-20:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "status": false,
       "action": "onListContractProcess",
       "data": "[...]"
   }

.. _璋冪敤鍚堢害-1:

璋冪敤鍚堢害
^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 璋冪敤鏌愪釜鍚堢害.

.. _鍙傛暟-55:

鍙傛暟
''''

=================== ================================
瀛楁                鍊�
=================== ================================
action              executeContract
contractID          鍚堢害ID
withDynamicAnalysis true/false 鏄惁杩涜鍔ㄦ€佸垎鏋�,鍙€�
operation           璋冪敤鍚堢害鐨勬柟娉曞悕
arg                 璋冪敤鍚堢害鐨勫弬鏁�
pubkey              璋冪敤鑰呭叕閽�,鍙€�
signature           璋冪敤鑰呯鍚� ,鍙€�
=================== ================================

``*``\ 琛ㄧず鍙€夊弬鏁�

.. code:: javascript

   //sm2 鍙粠sm2.js涓姞杞借幏寰椼€�
   signature = sm2.doSignature(contractID+"|"+operation+"|"+arg+"|"+pubkey,privateKey);

.. _璇锋眰绀轰緥-56:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "executeContract";
   request.contractID = "2073401446";
   request.operation = "main";
   request.arg = "hhhhh";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-21:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "needSeq":false,
       "seq":0,
       "status":"Success",
       "result":"world",
       "isInsnLimit":false,
       "totalGas":0,
       "executionGas":0,
       "extraGas":0,
       "size":0,
       "eventRelated":false,
       "responseID":"1617211077264_223",
       "action":"onExecuteResult",
       "executeTime":"5"
   }

杈撳嚭鍘嗗彶璁板綍鏃ュ織(鍒犻櫎)
^^^^^^^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄤ笂鍚堢害鐨凾imeTravel鏃ュ織.

.. _鍙傛暟-56:

鍙傛暟
''''

====== ==================
瀛楁   鍊�
====== ==================
action printTimeTravelLog
====== ==================

.. _璇锋眰绀轰緥-57:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "printTimeTravelLog";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-22:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "status": false,
       "data": "[CMActions] dumpContract :鈥/contractExamples/memoryDumps/LicenceManager\n"
   }

杈撳嚭鑺傜偣杞Щ鏃ュ織锛堝垹闄わ級
^^^^^^^^^^^^^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄧ殑鐘舵€佽浆绉绘棩蹇�.

.. _鍙傛暟-57:

鍙傛暟
''''

====== ================
瀛楁   鍊�
====== ================
action printTransferLog
====== ================

.. _璇锋眰绀轰緥-58:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "printTransferLog";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-23:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

    {
       "status": false,
       "data": ""
   }

鍚堢害鐘舵€佽縼绉�
^^^^^^^^^^^^

鍚戞湇鍔″櫒鍙戦€佽姹�, 鑾峰彇鑺傜偣鏈嶅姟鍣ㄧ殑鐘舵€佽浆绉绘棩蹇�.

.. _鍙傛暟-58:

鍙傛暟
''''

============ ============
瀛楁         鍊�
============ ============
action       loadMemory
contractName 鍚堢害鍚嶇О
memoryFile   鍚堢害鏂囦欢鍚嶇О
============ ============

.. _璇锋眰绀轰緥-59:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var request = {};
   request.action = "loadMemory";
   request.contractName = "JsonContract";
   request.memoryFile = "2020-03-17.20/42/55";
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉绀轰緥-24:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "data":"success",
       "size":"0.00 B",
       "action":"onTransferTo",
       "time":"0.01s"
   }

.. _鏃ュ織鏌ョ湅绫�-1:

鏃ュ織鏌ョ湅绫�
~~~~~~~~~~

鏌ョ湅鏈湴杩憂鏃ヨ妭鐐规棩蹇楋紙鍒犻櫎锛�
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-59:

鍙傛暟
''''

====== ================
瀛楁   鍊�
====== ================
action listLocalNodeLog
date   褰撳墠鏃堕棿
====== ================

.. _璇锋眰绀轰緥-60:

璇锋眰绀轰緥
''''''''

::

   request.action = "listLocalNodeLog";
   request.date = new Date().getTime() - 24 * 3600 * 1000 * n;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-31:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
      "data":"[{\"action\":\"login\",\"pubKey\":\"null\",\"status\":\"accept\",\"date\":1583139323822}\",]"
   }

鏌ョ湅鏈湴杩憂鏃ュ悎绾︽棩蹇楋紙鍒犻櫎锛�
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-60:

鍙傛暟
''''

====== ====================
瀛楁   鍊�
====== ====================
action listLocalContractLog
date   褰撳墠鏃堕棿
====== ====================

.. _璇锋眰绀轰緥-61:

璇锋眰绀轰緥
''''''''

::

   request.action = "listLocalContractLog";
   request.date = new Date().getTime() - 24 * 3600 * 1000 * n;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-32:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data":"[\"{\"action\":\"startContract\",\"pubKey\":\"04405d7ba358d9234939623ab51ea94ca685e6a1f36ed81fd9630ccba6473e632f163bb30faffd4c91f21e5bace20101d6d6e36c04ac67eea14cc24b4962b84f57\",\"contractID\":\"845581788\",\"contractName\":\"null\",\"date\":1583141525539}\"]"
   }

鑺傜偣閰嶇疆绫�
~~~~~~~~~~

鑾峰彇鑺傜偣閰嶇疆淇℃伅
^^^^^^^^^^^^^^^^

.. _鍙傛暟-61:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action loadNodeConfig
====== ==============

.. _璇锋眰绀轰緥-62:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "loadNodeConfig";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-33:

杩斿洖缁撴灉
''''''''

::

   {
       "status": true,
       "action": "onLoadNodeConfig",
       "data": {
           "nodeName": "04BF52213343C147E631B877BCEB17B794230EE551E85F58FA429C4BA03D690778CC384C6916C63DF36CB9E35C7E274FDB4E18491DFE3D611D347856D441CACC5AF9090B515F02AFC2DFBF56461EC83B5A4CD342466360D6CF82E6E40B637430AC4A329CCBC798DAF7D526AF9E3B3600E0BEA1BFAB8C160EF90128FAF67B19E45F37664F1E4B",
           "licence": "04AADCC7103CD02626D228AFFBEF53F8242ECA4DDD6F179D30B622440666715CFBB6FD1D3678A2B25812DEA9917073E79A65F7ADE517F784DC76288EFCEB37ECAA1025E6903540702F729DA1C2ECCD93F4E6FAFCE40DF443E7FD74387169D0C6D927C7BB12882D0471C8D3E6F31B0316A42FC38F6DD9978D4351B23B2AD63E2244909E98F51185D32CB99B4AE4E22D3AB4C04027BB",
           "expireTime": "Wed Aug 26 09:43:08 CST 2020",
           "nodes": "[\"node1\",\"node2\",\"node3\"]",
           "yjsPath": "/Users/xxx/docs/BDWareHttp/generatedlib/yjs.jar",
           "nodeCenter": "ws://127.0.0.1:1719/SCIDE/NodeCenter"
       }
   }

   { 
       "status":true,
       "action":"onLoadNodeConfig",
       "data":{  
           "nodeName":"Node_180",
           "peerID":"",
           "masterAddress":"39.104.201.40:21031",
           "licence":"04AADCC7103C",
           "doipConfig":"{\\"LHSProxyAddress\\":\\"http://39.104.201.40:21042/\\",\\"ownerHandle\\":\\"86.5000.470/dou.TEST\\",\\"certPath\\":\\"keys/dou.TEST.keystore\\",\\"certPassword\\":\\"123456\\",\\"repoID\\":\\"86.5000.470/doip.vcg9Mu1gSq_bdw\\",\\"listeners\\":\\"[{\\\\\\"url\\\\\\":\\\\\\"tcp://39.104.201.40:21032\\\\\\",\\\\\\"protocolVersion\\\\\\":\\\\\\"2.1\\\\\\",\\\\\\"messageFormat\\\\\\":\\\\\\"packet\\\\\\"}]\\",\\"serviceDescription\\":\\"test local Contract Repository\\",\\"serviceName\\":\\"ContractEngine021\\"}",
           "clusterConnected":"false",
           "nodePubKey":"0492d974b8a5b473d0ed2c81800917f76e2a1ec3666067888c85fe6922a672223f2083f95402ae13a744df58deabbe7206c4a317dd14296b0d3941a26ca4e34dc5",
           "ipPort":"",
           "bdledger":"39.108.56.240:18091,39.108.56.12:1809139.104.70.160:18091 47.98.247.70:18091 47.98.248.208:18091 39.104.77.165:18091 47.98.249.131:18091",
           "yjsPath":"/data/bdwaas/bdcontract/yjs.jar",
           "nodeCenter":"ws://39.104.201.21040/SCIDE/NodeCenter"
       }
   }

淇敼鑺傜偣閰嶇疆
^^^^^^^^^^^^

.. _鍙傛暟-62:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action updateConfig
key    瑕佹敼鐨勯厤缃」
val    瑕佹洿鏀圭殑鐩爣鍊�
====== ==============

鍏朵腑锛宬ey鐨勫彲閫夐」鍖呮嫭锛�

============= =================================== ===============================
key鐨勭ず       val绀轰緥                             璇存槑
============= =================================== ===============================
yjsPath       /User/xxx/cp/yjs.jar                鍚堢害杩涚▼鍚姩鎵€闇€鐨刯ar
dataChain     192.168.1.8:18090,182.173.2.3:18091 璐︽湰鑺傜偣鐨刬p涓庣鍙�
nodeCenter    ws://127.0.0.1:18002                CenterPortal鎵€鍦ㄧ殑ip/绔彛
nodeName      Node_180                            瀛楃涓茬被鍨�
masterAddress 192.168.3.2:18001                   璇odePortal鑺傜偣鐨刬p鍜岀殑TCP绔彛
============= =================================== ===============================

鍏朵腑NodePortal鐨凾CP绔彛涓篘ode鐨刪ttp/ws绔彛鍙�+1銆�

淇敼鑺傜偣鍚嶇О
^^^^^^^^^^^^

.. _鍙傛暟-63:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action changeNodeName
data   鏂扮殑鑺傜偣鍚嶇О
====== ==============

.. _璇锋眰绀轰緥-63:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "changeNodeName";
   param.data = "NewNodeName";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-34:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onChangeNodeName",
       "data": true
   }

淇敼鑺傜偣YJS璺緞
^^^^^^^^^^^^^^^

.. _鍙傛暟-64:

鍙傛暟
''''

====== =====================
瀛楁   鍊�
====== =====================
action changeYJSPath
data   鑺傜偣鏈嶅姟鍣▂js.jar璺緞
====== =====================

.. _璇锋眰绀轰緥-64:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "changeYJSPath";
   param.data = "/Users/xxx/docs/BDWareHttp/generatedlib/yjs.jar";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-35:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onChangeYJSPath",
       "data": true
   }

淇敼NodeCenter
^^^^^^^^^^^^^^

.. _鍙傛暟-65:

鍙傛暟
''''

====== =========================================
瀛楁   鍊�
====== =========================================
action changeNodeCenter
data   鑺傜偣鏈嶅姟鍣ㄨ杩炴帴鐨凬odeCenterWebSocket璺緞
====== =========================================

.. _璇锋眰绀轰緥-65:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "changeNodeCenter";
   param.data = "ws://127.0.0.1:1719/SCIDE/NodeCenter";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-36:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onChangeNodeCenter",
       "data": true
   }

淇敼璐︽湰鑺傜偣
^^^^^^^^^^^^

.. _鍙傛暟-66:

鍙傛暟
''''

====== ===========================
瀛楁   鍊�
====== ===========================
action changeBDledger
data   鏁伴摼鑺傜偣鐨処P:port,鐢ㄢ€�,鈥濋殧寮€
====== ===========================

.. _璇锋眰绀轰緥-66:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "changeBDledger";
   param.data = "39.108.56.240:18091,39.108.56.12:18091";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-37:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onChangeBDledger",
       "data": true
   }

涓婁紶鑺傜偣Licence
^^^^^^^^^^^^^^^

.. _鍙傛暟-67:

鍙傛暟
''''

====== =======================
瀛楁   鍊�
====== =======================
action uploadLicence
data   鑺傜偣鏈嶅姟鍣ㄧ殑Licence鍐呭
====== =======================

.. _璇锋眰绀轰緥-67:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "uploadLicence";
   param.data = "04AADCC7103C";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-38:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onUploadLicence",
       "data": true
   }

鑾峰彇鑺傜偣ID
^^^^^^^^^^

.. _鍙傛暟-68:

鍙傛暟
''''

====== =========
瀛楁   鍊�
====== =========
action getNodeID
====== =========

.. _璇锋眰绀轰緥-68:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "getNodeID";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-39:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "status": true,
       "action": "onGetNodeID",
       "data": "0431鈥3a92e1184bbc5817ebda5c2ad498e4ff1d240009b4f06d"
   }

鑾峰彇鑺傜偣鎵€鍦ㄧ殑鍙俊鎵ц闆嗙兢
^^^^^^^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-69:

鍙傛暟
''''

========== ================================================
瀛楁       鍊�
========== ================================================
action     getNodeTrustUnits
data       鑺傜偣ID
msgHandler 鏀跺埌鍥炲鐨勫洖璋冨嚱鏁�, 鍙娇鐢ㄢ€滃缓绔嬭繛鎺モ€濈殑msgHandler
ws         鑺傜偣鎵€灞炵殑NodeCenter鐨刉ebSocket鍦板潃
========== ================================================

.. _璇锋眰绀轰緥-69:

璇锋眰绀轰緥
''''''''

::

   centerportalws = createWssocket("ws://127.0.0.1:1718/NodeCenterWS",function() {
   var param = {};
   param.action = "getNodeTrustUnits";
   param.data = "0431e311bd70840fe69965e2cabea97fafe99f2133953c01abb9bd7cb62af42f8283f474d203051e920d3a92e1184bbc5817ebda5c2ad498e4ff1d240009b4f06d";
   centerportalws.send(JSON.stringify(param));
   }, msgHandler);

.. _杩斿洖缁撴灉-40:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [{
           "key": "0475c7b061...65e55_4063665700873624164",
           "value": "[\"04541429c11b094鈥�40009b4f06d\"]"
       }],
       "action": "onGetNodeTrustUnits"
   }

.. _妯℃澘鐢熸垚绫�-1:

妯℃澘鐢熸垚绫�
~~~~~~~~~~

鑾峰彇鍚堢害妯℃澘鍒楄〃
^^^^^^^^^^^^^^^^

.. _鍙傛暟-70:

鍙傛暟
''''

====== ===============
瀛楁   鍊�
====== ===============
action getTemplateList
====== ===============

.. _璇锋眰绀轰緥-70:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   req={};
   req.action = "getTemplateList";
   wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-41:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [
           {
               "formDesc": {
                   "dbPWD": {
                       "label": "瀵嗙爜",
                       "type": "input"
                   },
                   "contractName": {
                       "label": "鍚堢害鍚嶇О",
                       "type": "input"
                   },
                   "accessPolicy": {
                       "label": "璁块棶鎺у埗绛栫暐",
                       "type": "input",
                       "option": [
                           {
                               "text": "鏃犺闂帶鍒�",
                               "value": "NAC"
                           },
                           {
                               "text": "鐩存帴璁块棶鎺у埗",
                               "value": "DAC"
                           },
                           {
                               "text": "鍩轰簬瑙掕壊鐨勮闂帶鍒�",
                               "value": "RBAC"
                           }
                       ]
                   },
                   "dbUserName": {
                       "label": "鐢ㄦ埛鍚�",
                       "type": "input"
                   },
                   "fieldList": {
                       "label": "瀛楁鍚�",
                       "type": "tag"
                   },
                   "dbUrl": {
                       "label": "鏁版嵁搴撻摼鎺�",
                       "type": "input"
                   },
                   "tableName": {
                       "label": "琛ㄥ悕",
                       "type": "input"
                   }
               },
               "apiName": "generateMySQLProject"
           },
           {
               "formDesc": {
                   "contractName": {
                       "label": "鍚堢害鍚嶇О",
                       "type": "input"
                   },
                   "accessPolicy": {
                       "label": "璁块棶鎺у埗绛栫暐",
                       "type": "input",
                       "option": [
                           {
                               "text": "鏃犺闂帶鍒�",
                               "value": "NAC"
                           },
                           {
                               "text": "鐩存帴璁块棶鎺у埗",
                               "value": "DAC"
                           },
                           {
                               "text": "鍩轰簬瑙掕壊鐨勮闂帶鍒�",
                               "value": "RBAC"
                           }
                       ]
                   }
               },
               "apiName": "generateEmptyProject"
           }
       ],
       "action": "onTemplateList"
   }

绌虹櫧鍚堢害妯℃澘
^^^^^^^^^^^^

.. _鍙傛暟-71:

鍙傛暟
''''

============ =============================
瀛楁         鍊�
============ =============================
action       generateEmptyProject
contractName 瀛楃涓茬被鍨嬶紝鍚堢害鍚嶇О
isPrivate    甯冨皵绫诲瀷锛屾槸鍚︿负绉佹湁椤圭洰
accessPolicy 鑻ヤ负鈥淒AC鈥濓紝鍒欏疄鐜扮洿鎺ヨ闂帶鍒�
============ =============================

.. _璇锋眰绀轰緥-71:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {};
   req.contractName = "Empty22";
   req.action = "generateEmptyProject";
   req.accessPolicy = "DAC";
   //wssocket涓哄缓绔嬪ソ鐨勮繛鎺�
   wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-42:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onListProjects",
       "data":"[\"AnnotationSample\",\"AppDataAnalysis\",\"AppDataSource\"]",
       "executeTime":0,
       "isPrivate":false
   }

MySQL鎺ュ叆鍚堢害
^^^^^^^^^^^^^

.. _鍙傛暟-72:

鍙傛暟
''''

============= ======================================================
瀛楁          鍊�
============= ======================================================
action        generateMySQLProject
contractName  瀛楃涓茬被鍨嬶紝鍚堢害鍚嶇О
isPrivate     甯冨皵绫诲瀷锛屾槸鍚︿负绉佹湁椤圭洰
dbUrl         瀛楃涓茬被鍨嬶紝鏁版嵁搴撶殑URI
dbUserName    瀛楃涓茬被鍨嬶紝鏁版嵁搴撶殑鐢ㄦ埛鍚�
dbPWD         瀛楃涓茬被鍨嬶紝鏁版嵁搴撳瘑鐮�
accessPolicy  鑻ヤ负鈥淒AC鈥濓紝鍒欏疄鐜扮洿鎺ヨ闂帶鍒讹紝鑻ヤ负鈥淣AC鈥濆垯娌℃湁璁块棶鎺у埗
tableName     瀛楃涓茬被鍨嬶紝鏁版嵁搴撶殑琛ㄥ悕
fieldList     瀛楃涓插垪琛紝鏁版嵁搴撶殑瀛楁鍒楄〃
defaultAccept 甯冨皵鍊硷紝琛ㄧず鐢宠鏃舵槸鍚﹂粯璁ゆ湁鏉�
============= ======================================================

.. _璇锋眰绀轰緥-72:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {};
   req.contractName = "MySQLFromTemplate";
   req.action = "generateMySQLProject";
   req.pubKey = global.sm2Key.publicKey;
   req.isPrivate = true;
   req.tableName = "data";
   req.dbUrl = "jdbc:mysql://xxx:xxx/xxx";
   req.dbUserName = "loushuai";
   req.dbPWD = "loushuai";
   req.fieldList = [{"name":"鍚嶅瓧","code":"*"}];
   req.basicInfo={"type":"鎵€灞炲垎绫�","name":"璧勬簮鍚嶇О"};
   req.accessPolicy = "DAC";
   req.defaultAccept = true;
   //global.wssocket涓哄缓绔嬪ソ鐨勮繛鎺�
   global.wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-43:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onListProjects",
       "data":"[\"CSVFromTemplate\",\"Empty22\",\"Hello\",\"MySQLFromTemplate\",\"test\"]",
       "executeTime":0,
       "isPrivate":true
   }

CSV鎺ュ叆鍚堢害
^^^^^^^^^^^

.. _鍙傛暟-73:

鍙傛暟
''''

================= ======================================================
瀛楁              鍊�
================= ======================================================
action            generateCSVProject
contractName      瀛楃涓茬被鍨嬶紝鍚堢害鍚嶇О
base64EncodedData 瀛楃涓茬被鍨嬶紝閫氳繃base64缂栫爜鍚庣殑CSV鏂囦欢鍐呭
isPrivate         鍙€夊瓧娈碉紝甯冨皵绫诲瀷锛屾槸鍚︿负绉佹湁椤圭洰
accessPolicy      鑻ヤ负鈥淒AC鈥濓紝鍒欏疄鐜扮洿鎺ヨ闂帶鍒讹紝鑻ヤ负鈥淣AC鈥濆垯娌℃湁璁块棶鎺у埗
defaultAccept     鍙€夊瓧娈碉紝甯冨皵鍊硷紝琛ㄧず鐢宠鏃舵槸鍚﹂粯璁ゆ湁鏉�
================= ======================================================

.. _璇锋眰绀轰緥-73:

璇锋眰绀轰緥
''''''''

.. code:: javascript

   var req = {};
   req.contractName = "CSVFromTemplate";
   req.action = "generateCSVProject";
   req.pubKey = global.sm2Key.publicKey;
   req.isPrivate = true;
   req.tableName = "data";
   req.accessPolicy = "DAC";
   req.defaultAccept = true;
   req.base64EncodedData = "bmFtZSwgc2NvcmUsCmphY2ssIDkwLApsdWN5LCA5MQo=";
   //global.wssocket涓哄缓绔嬪ソ鐨勮繛鎺�
   global.wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-44:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action":"onListProjects",
       "data":"[\"CSVFromTemplate\",\"Empty22\",\"Hello\",\"MySQLFromTemplate\",\"test\"]",
       "executeTime":0,
       "isPrivate":true
   }

--------------

璺敱鑺傜偣WebSocket鎺ュ彛
---------------------

.. _鐢ㄦ埛绠$悊绫�-2:

鐢ㄦ埛绠$悊绫�
~~~~~~~~~~

.. _鑾峰彇session-1:

鑾峰彇Session
^^^^^^^^^^^

鐧诲綍鍓嶈幏鍙杝ession浠ヤ究杩涜绛惧悕銆�

.. _鍙傛暟-74:

鍙傛暟
''''

====== ============
瀛楁   鍊�
====== ============
action getSessionID
====== ============

.. _璇锋眰绀轰緥-74:

璇锋眰绀轰緥
''''''''

::

   var req = {};
   req.action = "getSessionID";
   wssocket.send(JSON.stringify(req));

.. _杩斿洖缁撴灉-45:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onSessionID",
       "session": "9782323_session"
   }

.. _鐢ㄦ埛鐧诲綍-1:

鐢ㄦ埛鐧诲綍
^^^^^^^^

鐢ㄦ埛杩涜鍏閽ヨ韩浠介獙璇侊紝闇€鍏堣皟鐢ㄢ€済etSessionID鈥濊幏鍙杝essionID浠ヤ究浜庣鍚嶃€�

.. _鍙傛暟-75:

鍙傛暟
''''

====== =====
瀛楁   鍊�
====== =====
action login
====== =====

.. _璇锋眰绀轰緥-75:

璇锋眰绀轰緥
''''''''

::

   var loginParam = {};
   loginParam.pubKey = global.sm2Key.publicKey;
   loginParam.signature = sm2.doSignature(global.session,
               global.sm2Key.privateKey);
   loginParam.action = "login";
   wssocket.send(JSON.stringify(loginParam));

.. _杩斿洖缁撴灉绀轰緥-25:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onLogin",
       "data": "CenterManager"
   }

鐢ㄦ埛鑾峰彇褰撳墠瑙掕壊(鍒犻櫎)
^^^^^^^^^^^^^^^^^^^^^^

鐢ㄦ埛鏍规嵁鐧诲綍鏃剁殑鍏挜鑾峰彇瀵瑰簲鐨勮鑹诧紝濡傛灉鏄涓€娆$櫥褰曞垯姝ゆ椂鐨勫叕閽ラ粯璁ょО涓哄噯鍏ョ鐞嗗憳

.. _鍙傛暟-76:

鍙傛暟
''''

====== =======
瀛楁   鍊�
====== =======
action getRole
====== =======

.. _璇锋眰绀轰緥-76:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "getRole";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉绀轰緥-26:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onGetRole",
       "data": "CenterManager"
   }

.. _鐢宠瑙掕壊-1:

鐢宠瑙掕壊
^^^^^^^^

鍦ㄥ噯鍏ョ鐞嗗憳鐣岄潰鍙互鐢宠绉颁负缁勭綉涓煇涓妭鐐圭殑鑺傜偣绠$悊鍛�

.. _鍙傛暟-77:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action applyRole
role   鐢宠鐨勮鑹插悕绉�
====== ==============

.. _璇锋眰绀轰緥-77:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "applyRole";
   param.role="
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉绀轰緥-27:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onApplyRole",
       "data": "failed"
   }

娣诲姞鑺傜偣
^^^^^^^^

.. _鍙傛暟-78:

鍙傛暟
''''

========== ================
瀛楁       鍊�
========== ================
action     addNode
nodePubKey 瑕佹坊鍔犵殑鑺傜偣鍏挜
========== ================

.. _璇锋眰绀轰緥-78:

璇锋眰绀轰緥
^^^^^^^^

::

   var req = {};
   //鏌愯妭鐐圭殑publicKey鍙€氳繃杩炴帴璇ヨ妭鐐癸紝骞堕€氳繃"鑾峰彇鑺傜偣閰嶇疆淇℃伅"鎺ュ彛鑾峰彇
   req.nodePubKey = publicKey;
   req.action = "addNode";
   wssocket.send(JSON.stringify(req));

.. _鍒犻櫎鐢ㄦ埛瑙掕壊-1:

鍒犻櫎鐢ㄦ埛瑙掕壊
^^^^^^^^^^^^

.. _鍙傛暟-79:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action delete
pubKey 瀵瑰簲鐢ㄦ埛鐨勫叕閽�
====== ==============

.. _璇锋眰绀轰緥-79:

璇锋眰绀轰緥
''''''''

::

   var deleteInfo = {};
   deleteInfo.pubKey = user.publicKey;
   deleteInfo.action = "delete";
   wssocket.send(JSON.stringify(deleteInfo));

.. _杩斿洖缁撴灉绀轰緥-28:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onDelete",
       "data": "success"
   }

.. _鏌ョ湅鎺堟潈鐢ㄦ埛鍒楄〃-1:

鏌ョ湅鎺堟潈鐢ㄦ埛鍒楄〃
^^^^^^^^^^^^^^^^

鏌ョ湅鍑嗗叆绠$悊鍛樺綋鍓嶇粍缃戜腑宸茬粡鎺堟潈鐨勮妭鐐圭鐞嗗憳

.. _鍙傛暟-80:

鍙傛暟
''''

====== ============
瀛楁   鍊�
====== ============
action listAllUsers
====== ============

.. _璇锋眰绀轰緥-80:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "onListAllUsers";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉绀轰緥-29:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onListAllUsers",
        "kv": {
           "key": "049999ebd14ff3b96ebf7f7325e1da94a1c4c376573a1dc1cec2b4f7a3b09ed7b07252134e93b6ac2e1853268b82f4b541d34fb42b0182cd61043e99d3489e2cf7",
           "value": " NodeManager"
       },
       "time": {
           "key": "049999ebd14ff3b96ebf7f7325e1da94a1c4c376573a1dc1cec2b4f7a3b09ed7b07252134e93b6ac2e1853268b82f4b541d34fb42b0182cd61043e99d3489e2cf7",
           "value": 1587398989914
       }
   }

.. _鏌ョ湅鐢宠鐢ㄦ埛鍒楄〃-1:

鏌ョ湅鐢宠鐢ㄦ埛鍒楄〃
^^^^^^^^^^^^^^^^

.. _鍙傛暟-81:

鍙傛暟
''''

====== =============
瀛楁   鍊�
====== =============
action listApplyList
====== =============

.. _璇锋眰绀轰緥-81:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "onListApplyList";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-46:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onListApplyList",
        "kv": {
           "key": "04b00f32eab70c78d1b43738f190d326d36c021af2124acefe6d057016b11ea31c750bb473e565c9d89e4993a44f4d30adf447d3026a21ff4b3b64cef523074ef7",
           "value": " NodeManager"
       },
       "time": {
           "key": "04b00f32eab70c78d1b43738f190d326d36c021af2124acefe6d057016b11ea31c750bb473e565c9d89e4993a44f4d30adf447d3026a21ff4b3b64cef523074ef7",
           "value": 1587398989914
       }
   }

鏌ョ湅鐢ㄦ埛绫诲瀷鍒嗗竷
^^^^^^^^^^^^^^^^

.. _鍙傛暟-82:

鍙傛暟
''''

====== =============
瀛楁   鍊�
====== =============
action queryUserStat
====== =============

.. _璇锋眰绀轰緥-82:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "onQueryUserStat";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉绀轰緥-30:

杩斿洖缁撴灉绀轰緥
''''''''''''

.. code:: json

   {
       "action": "onQueryUserStat",
       "userListCount": 3,
       "applyListCount":0
   }

鑺傜偣绠$悊绫�
~~~~~~~~~~

鏌ョ湅鑺傜偣鍒楄〃
^^^^^^^^^^^^

鏌ョ湅璇ョ敤鎴锋湁鏉冮檺鏌ョ湅鐨勮妭鐐瑰垪琛�(浠呭噯鍏ョ鐞嗗憳鍙婂悎绾︾鐞嗚€呭彲鐢�)

.. _鍙傛暟-83:

鍙傛暟
''''

====== =========
瀛楁   鍊�
====== =========
action listNodes
====== =========

.. _璇锋眰绀轰緥-83:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "listNodes";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-47:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "offline": [{
           "key": "0431e31...40009b4f06d",
           "value": "0431e311bd708...b4f06d"
       }],
       "action": "onListNodes",
       "online": [{
           "contracts": [],
           "pubKey": "0431e311...09b4f06d",
           "nodeName": "NewNodeName",
           "udpID": "528822126",
           "cimanager": ""
       }]
   }

鏌ョ湅鍙俊鎵ц闆嗙兢鍒楄〃
^^^^^^^^^^^^^^^^^^^^

鏌ョ湅璇ョ敤鎴锋湁鏉冮檺鏌ョ湅鐨勮妭鐐瑰垪琛�(浠呬腑蹇冪鐞嗗憳鍙婂悎绾︾鐞嗚€呭彲鐢�)

.. _鍙傛暟-84:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action listTrustUnits
====== ==============

.. _璇锋眰绀轰緥-84:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "listTrustUnits";
   wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-48:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data": [{
           "key": "0470b2f27f4f6鈥�1cb855f1ecec11",
           "value": "[...]"
       }],
       "action": "onListTrustUnits"
   }

寤虹珛鍙俊鎵ц闆嗙兢
^^^^^^^^^^^^^^^^

.. _鍙傛暟-85:

鍙傛暟
''''

====== ======================
瀛楁   鍊�
====== ======================
action createTrustUnit
data   鑺傜偣鍏挜缁勬垚鐨凧son鏁扮粍
Msg    闆嗙兢鍚嶇О
====== ======================

.. _璇锋眰绀轰緥-85:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "createTrustUnit";
   param.data = "[\"382r0934309t...\",\"345343rr3f34...\"]";
   param.msg = "newUnit1";
   global.wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-49:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onCreateTrustUnit",
       "status": "Success"
   }

鍒犻櫎鍙俊鎵ц闆嗙兢
^^^^^^^^^^^^^^^^

.. _鍙傛暟-86:

鍙傛暟
''''

====== ===============
瀛楁   鍊�
====== ===============
action deleteTrustUnit
data   鍙俊鎵ц闆嗙兢ID
====== ===============

.. _璇锋眰绀轰緥-86:

璇锋眰绀轰緥
''''''''

::

   var param = {};
   param.action = "deleteTrustUnit";
   param.data = "0475d34rf3434..._1583410158761";
   global.wssocket.send(JSON.stringify(param));

.. _杩斿洖缁撴灉-50:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "action": "onDeleteTrustUnit",
       "status": "Success"
   }

.. _鏃ュ織鏌ョ湅绫�-2:

鏃ュ織鏌ョ湅绫�
~~~~~~~~~~

鏌ョ湅缁勭綉绠$悊鎿嶄綔鐨勭粺璁�
^^^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-87:

鍙傛暟
''''

====== ==============
瀛楁   鍊�
====== ==============
action queryActionLog
date   褰撳墠鏃堕棿
====== ==============

.. _璇锋眰绀轰緥-87:

璇锋眰绀轰緥
''''''''

::

   request.action = "onQueryActionLog";
   request.date = new Date().getTime() - 24 * 3600 * 1000 * n;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-51:

杩斿洖缁撴灉
''''''''

.. code:: json

   {   "action":"onQueryActionLog",
        "data":"[{\"action\":\"login\",\"pubKey\":\"null\",\"status\":\"accept\",\"date\":1583139323822}\",]"
   }

鏌ョ湅鏈湴杩憂鏃ュ悎绾︽棩蹇�
^^^^^^^^^^^^^^^^^^^^^

.. _鍙傛暟-88:

鍙傛暟
''''

====== ====================
瀛楁   鍊�
====== ====================
action listLocalContractLog
date   褰撳墠鏃堕棿
====== ====================

.. _璇锋眰绀轰緥-88:

璇锋眰绀轰緥
''''''''

::

   request.action = "listLocalContractLog";
   request.date = new Date().getTime() - 24 * 3600 * 1000 * n;
   wssocket.send(JSON.stringify(request));

.. _杩斿洖缁撴灉-52:

杩斿洖缁撴灉
''''''''

.. code:: json

   {
       "data":"[\"{\"action\":\"startContract\",\"pubKey\":\"04405d7b...\",\"contractID\":\"845581788\",\"contractName\":\"null\",\"date\":1583141525539}\"]"
   }

--------------

Bash鎺ュ彛
--------

宸插簾寮冦€傚彲浣跨敤BDWareConfigTool浠f浛銆� 閫氳繃鍛戒护琛屽彂閫丼ocket鎸囦护,
鎵ц璋冪敤\ ``ContractController``\ 绫讳腑鏂规硶, 瀹屾垚浠ヤ笅鍔熻兘.
(闇€瑕佸湪鏈満鐨刞`1615``\ 绔彛杩愯\ ``ContractManager``\ 瀹炰緥)

.. figure:: ./_static/imgs/bash-api.png
   :alt: Bash鎺ュ彛鍔熻兘绀烘剰鍥�

   Bash鎺ュ彛鍔熻兘绀烘剰鍥�

鎸囦护
~~~~

.. code:: bash

   java -jar yjs.jar function_name arguments

``function_name``\ 涓鸿皟鐢ㄧ殑鏂规硶鍚�;

``arguments``\ 涓烘柟娉曞弬鏁�.

.. _鍚姩鍚堢害-2:

鍚姩鍚堢害
~~~~~~~~

.. _鍙傛暟-89:

鍙傛暟
^^^^

``function_name``\ 涓篭 ``startContract``;

``arguments``\ 涓哄惎鍔ㄥ悎绾﹂渶瑕佺殑鍙傛暟, 鍖呮嫭鍚堢害绫诲瀷\ ``type``,
鍚堢害ID\ ``id``, 鍚堢害鑴氭湰\ ``script``.

鎸囦护绀轰緥
^^^^^^^^

.. code:: bash

   java -jar yjs.jar startContract "{\"type\":\"Algorigthm\",\"id\":\"656565\",\"script\":\"contract c{function main(arg){return arg/1.0+1;}}\"}"

.. _璋冪敤鍚堢害-2:

璋冪敤鍚堢害
~~~~~~~~

.. _鍙傛暟-90:

鍙傛暟
^^^^

``function_name``\ 涓篭 ``executeContract``;

``arguments``\ 涓鸿皟鐢ㄥ悎绾﹂渶瑕佺殑鍙傛暟, 鍖呮嫭璋冪敤鍙傛暟\ ``arg``,
鍚堢害ID\ ``contractID``.

.. _鎸囦护绀轰緥-1:

鎸囦护绀轰緥
^^^^^^^^

.. code:: bash

   java -jar yjs.jar executeContract "{\"arg\":\"http://www.baidu.com\",\"contractID\":\"656564\"}"

.. _鍋滄鍚堢害-1:

鍋滄鍚堢害
~~~~~~~~

.. _鍙傛暟-91:

鍙傛暟
^^^^

``function_name``\ 涓篭 ``stopContract``;

``arguments``\ 涓鸿皟鐢ㄥ悎绾﹂渶瑕佺殑鍙傛暟, 鍗冲悎绾D\ ``contractID``.

.. _鎸囦护绀轰緥-2:

鎸囦护绀轰緥
^^^^^^^^

.. code:: bash

   java -jar yjs.jar stopContract "{\"arg\":\"http://www.baidu.com\",\"contractID\":\"656564\"}"

鍋滄鍏ㄩ儴鍚堢害
~~~~~~~~~~~~

.. _鍙傛暟-92:

鍙傛暟
^^^^

``function_name``\ 涓篭 ``stopAllContracts``.

.. _鎸囦护绀轰緥-3:

鎸囦护绀轰緥
^^^^^^^^

.. code:: bash

   java -jar yjs.jar stopAllContracts 

鏌ヨ鍏ㄩ儴鍚堢害
~~~~~~~~~~~~

.. _鍙傛暟-93:

鍙傛暟
^^^^

``function_name``\ 涓篭 ``listContracts``.

.. _鎸囦护绀轰緥-4:

鎸囦护绀轰緥
^^^^^^^^

.. code:: bash

   java -jar yjs.jar listContracts