BDContract管理界面
==================

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

合约节点管理界面
----------------

该界面的使用地址为：\ `NodePortal.html </NodePortal.html>`__

用户管理菜单
~~~~~~~~~~~~

用户管理为登录用户提供查看当前用户分布情况和用户活跃情况统计等。

概览
^^^^

|nodeUserManager|
节点用户管理页面一共有四个模块：用户情况、用户活跃统计、授权用户管理、未授权用户管理。

用户类型分布
^^^^^^^^^^^^

主要统计当前节点管理员所拥有的四种角色的数量：合约提供者、合约管理员、合约使用者
|userList|

用户活跃统计
^^^^^^^^^^^^

|userActive| 统计30天之内\ **登录**\ 、\ **授权**\ 、\ **申请**\ 的次数

当前用户信息
^^^^^^^^^^^^

|nodeInfo| \*
在这个文本框中可以查看当前用户的公私钥，如果其他用户想要用自己的公私钥登录节点管理员界面，可以将自己的公私钥复制到这个文本框中。
\*
将自己的公私钥复制完成之后要点击\ **导入公钥**\ ，将公钥加入到节点管理员本地
\*
然后在\ **本地公钥**\ 中可以看见公钥的前五位，选择自己的公钥，将在\ **我的权限**\ 中展示出当前选择的公钥的角色，如果是还没有在中心管理员认证的节点则默认为\ **Anonymous**
\*
如果不是节点管理员，想要加入某个中心管理员的网络，那么要在中心管理员所在的用户管理中用自己的公私钥导入后进行认证。
\*
如果想要行使更多关于合约的操作，则需要认证不同的角色：合约管理员、合约使用者、合约提供者，然后进行\ **角色认证**

授权与非授权用户列表
^^^^^^^^^^^^^^^^^^^^

|roleAuth|
在节点管理员认证角色之后，节点管理员登录会在\ **未授权角色管理**\ 表格中看见带有公钥的申请信息，如果同意，则点击\ **授权**\ ，如果不同意点击\ **忽略**\ 就可以。
授权之后将在\ **授权角色管理**\ 表格中看见授权后的节点列表。如果节点管理员想要移除某个节点的角色，则在授权角色管理列表中\ **删除**\ 即可。

合约代码管理菜单
~~~~~~~~~~~~~~~~

.. figure:: ./_static/imgs/codeManageMenu.png
   :alt: codeManageMenu

   codeManageMenu

合约文件
^^^^^^^^

.. figure:: ./_static/imgs/codeManage1.png
   :alt: codeManage1

   codeManage1

在合约代码管理菜单中，用户可以看到公共合约以及个人私有合约。
|codeManage1-1|

对于公共合约，节点管理员可以对其中文件进行删除和上传操作，可以对合约项目进行下载和删除操作。
|codeManage1-2|

对于私有合约，合约提供者可以对其中文件进行删除和上传操作，可以对合约项目进行下载、删除和传至公共合约目录操作。

以下是对合约文件进行操作的示例。

上传文件
^^^^^^^^

.. figure:: ./_static/imgs/codeManage6.png
   :alt: codeManage6

   codeManage6

删除
^^^^

.. figure:: ./_static/imgs/codeManage5.png
   :alt: codeManage5

   codeManage5

传至公共
^^^^^^^^

.. figure:: ./_static/imgs/codeManage7.png
   :alt: codeManage7

   codeManage7

下拉框
^^^^^^

.. figure:: ./_static/imgs/codeManage2.png
   :alt: codeManage2

   codeManage2

四个下拉框中，可以分别对合约状态保存模式、已启动合约实例、节点所在集群以及结果校验方式进行选择。

按钮操作
^^^^^^^^

.. figure:: ./_static/imgs/codeManage3.png
   :alt: codeManage3

   codeManage3

启动
^^^^

在文件列表中选择合约文件之后，在合约运行模式中选择“单节点执行”，点击启动按钮，会启动指定文件，并在结果显示框中显示返回结果。

启动P2P集群合约
^^^^^^^^^^^^^^^

在文件列表中选择合约文件之后，在合约运行模式中选择该可信合约运行的合约集群，点击启动按钮，会在该集群的所有节点上启动指定文件，并在结果显示框中显示返回结果。

启动全部
^^^^^^^^

在合约运行模式中选择“单节点执行”，点击启动全部按钮，会启动合约文件列表中所有合约。

停止P2P集群合约
^^^^^^^^^^^^^^^

在已启动合约实例的下拉框中选择一个合约实例，在合约运行模式中选择该可信合约运行的合约集群，点击停止按钮，会在该集群的所有节点上终止这个合约进程。

停止
^^^^

在已启动合约实例的下拉框中选择一个合约实例，点击停止按钮，会终止这个合约进程。

停止全部
^^^^^^^^

点击停止全部按钮，会停止该节点上运行的所有合约实例。

静态分析
^^^^^^^^

在合约文件列表中选择合约文件，并在合约实例下拉框中选择合约实例，点击静态分析按钮，会对该合约进行静态分析，并在结果显示框中显示返回结果。

分发合约
^^^^^^^^

在合约文件列表中选择合约项目，并在合约运行模式中选择一个集群，点击分发合约按钮，会将该合约项目打包为ypk分发给这个集群中的所有节点。

返回结果
^^^^^^^^

.. figure:: ./_static/imgs/codeManage4.png
   :alt: codeManage4

   codeManage4

返回结果显示中显示一些操作的返回结果。

合约权限配置
^^^^^^^^^^^^

在启动合约之后，如果当前用户的角色可以查看已经启动合约进程，那么在选定查看合约进程时将会在右下方展示当前合约的IO权限。
|permissionShow|

如果选中的合约没有IO权限，则在当前权限的展示框中提示\ **当前合约没有IO权限**
|nullPermission|

当前用户是合约管理员时可以对已有的合约IO权限进行修改。系统会提示修改后合约将有可能不会正常运行，如果还是确定要取消，那么点击\ **确定**
即可，反之点击\ **关闭** |updatePermission|

点击关闭或者打开之后，下一次查看同一个合约代码的进程将会默认显示最近一次修改之后的IO权限。
|closePermission|

合约实例管理菜单
~~~~~~~~~~~~~~~~

.. figure:: ./_static/imgs/nodeInstancesPage.png
   :alt: nodeInstancesPage

   nodeInstancesPage

合约实例管理菜单显示了该节点当前的所有合约实例,
用户可查看合约实例的状态, 并对合约实例进行执行或状态迁移的操作.

合约实例列表
^^^^^^^^^^^^

.. figure:: ./_static/imgs/nodeInstancesList.png
   :alt: nodeInstancesList

   nodeInstancesList

该列表显示了当前节点的所有合约实例信息, 包括合约ID, 合约名称,
合约类型合约状态, 合约进程端口, 合约调用次数, 合约流量, 及合约占用内存,
集群合约的结果校验模式.

合约实例执行
^^^^^^^^^^^^

.. figure:: ./_static/imgs/chooseInstance.png
   :alt: chooseInstance

   chooseInstance

用户可在合约实例的选择下拉框中选择合约实例, 对该合约实例进行操作.

.. figure:: ./_static/imgs/intanceExecute.png
   :alt: intanceExecute

   intanceExecute

选择合约实例后, 用户可在“方法”的下拉框中选择该合约的方法名,
在“参数”输入框中输入方法的参数, 点击“执行”.

用户还可点击“动态分析执行”进行带有动态分析结果的执行.

若该合约为单点合约, 则合约在单点执行; 若该合约为集群合约,
则该合约在该集群的所有节点上执行.

合约实例执行结果
^^^^^^^^^^^^^^^^

.. figure:: ./_static/imgs/executeResult.png
   :alt: executeResult

   executeResult

合约实例的执行完成后的结果显示在“执行结果”区域中, 包括该次执行的ID,
执行成功/失败, 执行时间, 及执行结果.

.. figure:: ./_static/imgs/analysisExecuteResult.png
   :alt: analysisExecuteResult

   analysisExecuteResult

若该合约的执行方式为“动态分析执行”, 则结果框内除执行结果,
还会显示该次执行的动态分析结果.

合约状态迁移
^^^^^^^^^^^^

.. figure:: ./_static/imgs/memoryDump.png
   :alt: memoryDump

   memoryDump

对于支持用户手动迁移的合约实例,
用户可点击“本地状态保存”对合约实例的状态进行保存,
或从合约的TimeTravel列表中选择已保存的合约实例,
将合约状态迁移到对应时刻.

日志管理菜单
~~~~~~~~~~~~

.. figure:: ./_static/imgs/logMenu.png
   :alt: logMenu

   logMenu

该菜单是对该节点本地节点日志以及合约日志的统计结果展示。

其中，节点管理员可以查看节点日志的相关数据；合约管理者及合约使用者可以查看该节点本地合约日志的相关数据。

日志统计图
^^^^^^^^^^

.. figure:: ./_static/imgs/log1.png
   :alt: log1

   log1

各类平台操作百分比
^^^^^^^^^^^^^^^^^^

该图默认显示近2日各类平台操作占比的饼图，其中平台操作分为登陆类、用户类、日志类、合约类、维护类以及其他类这六类。可在节点日志详情的右上角的时间范围框中填写想要查看的日志时间范围，修改之后，各类平台操作百分比会同步更新。

各类合约操作百分比
^^^^^^^^^^^^^^^^^^

合约操作分为启动、终止、静态分析和执行这四类，该图为近2日对各类合约操作占比的饼图。可在合约日志详情的右上角的时间范围框中填写想要查看的日志时间范围，修改之后，各类合约操作百分比会同步更新。

每日平台使用统计
^^^^^^^^^^^^^^^^

该图为近2日平台操作次数统计的折线图。可在节点日志详情的右上角的时间范围框中填写想要查看的日志时间范围，修改之后，每日平台使用统计折线图会同步更新。

每日合约使用统计
^^^^^^^^^^^^^^^^

该图为近2日对该节点上合约的操作次数统计的折线图。可在合约日志详情的右上角的时间范围框中填写想要查看的日志时间范围，修改之后，每日合约使用统计折线图会同步更新。

日志详情
^^^^^^^^

节点日志详情
^^^^^^^^^^^^

.. figure:: ./_static/imgs/log2.png
   :alt: log2

   log2

节点日志详情表是对节点日志中所有数据的展示。可以点击表格中相关按钮按使得日志数据按不同方式进行排序，并且可以在表格右上角输入关键词进行相关日志搜索。可在右上角的时间范围框中填写想要查看的日志时间范围，修改之后，各类平台操作百分比和每日平台使用统计会同步更新。

合约日志详情
^^^^^^^^^^^^

.. figure:: ./_static/imgs/log3.png
   :alt: log3

   log3

合约日志详情表是对合约日志中所有数据的展示。可以点击表格中相关按钮按使得日志数据按不同方式进行排序，并且可以在表格右上角输入关键词进行相关日志搜索。可在右上角的时间范围框中填写想要查看的日志时间范围，修改之后，各类合约操作百分比和每日合约使用统计会同步更新。

节点管理菜单
~~~~~~~~~~~~

.. figure:: ./_static/imgs/nodeConfig.png
   :alt: nodeConfig

   nodeConfig

节点管理菜单显示了该节点的配置信息及所属可信执行集群信息.

节点配置
^^^^^^^^

.. figure:: ./_static/imgs/nodeConfigChange.png
   :alt: nodeConfigChange

   nodeConfigChange

节点管理员可查看该节点的配置信息, 包括节点名称, 节点YJS路径,
节点的网络中心节点, 节点管理员还可对以上配置进行修改.

若节点管理员修改了节点的网络中心, 该节点后重新想改节点连接,
整个页面刷新重载.

节点可信执行集群列表
^^^^^^^^^^^^^^^^^^^^

.. figure:: ./_static/imgs/nodeUnits.png
   :alt: nodeUnits

   nodeUnits

节点管理员可查看节点所属的可信执行集群信息, 包括集群创建者, 集群ID,
集群中节点数目, 集群中节点的信息.

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

节点Licence配置
^^^^^^^^^^^^^^^

.. figure:: ./_static/imgs/nodeLicence.png
   :alt: nodeLicence

   nodeLicence

用户可以查看该节点的Licence及过期时间, 还可申请Licence, 上传Licence,
保存节点UUID.

智能合约在线编辑器
------------------

用户与账号
~~~~~~~~~~

创建账号
^^^^^^^^

申请授权
^^^^^^^^

创建项目
~~~~~~~~

新建文件
^^^^^^^^

.. _上传文件-1:

上传文件
^^^^^^^^

启动合约
~~~~~~~~

.. figure:: ./_static/imgs/contractMode.png
   :alt: contractMode

   contractMode

####正常模式 点击左侧启动按钮，以正常模式启动合约。

####debug模式
点击右侧debug按钮，以debug模式启动合约。目前约定debug模式合约通过executeContract调用正常模式合约时，返回正常模式合约文档中的返回结果示例。

调用合约
~~~~~~~~

###生成文档 |genReadme|

启动合约后点击“生成文档”按钮，可以通过各export函数的@Description /
@Param / @Result 对合约进行调用及结果返回，从而生成合约的说明文档。

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

路由准入管理界面
----------------

权限申请与授权
~~~~~~~~~~~~~~

仪表盘
~~~~~~

仪表盘为提供对准入节点中用户数量，合约数量，节点数量的概览。

整体视图
~~~~~~~~

|dashboard|
一共分为四个模块，一个模块是用户、合约、节点数量的概览，然后分别是这三个数量的详细分类的数据统计情况。

节点数目
~~~~~~~~

|node| 当前在线和离线节点统计

.. _用户类型分布-1:

用户类型分布
~~~~~~~~~~~~

|userAll|
当前准入节点所在组网中的节点管理员、准入管理员的数量和申请中节点的数量

合约调用情况
~~~~~~~~~~~~

|contract|
当前准入节点所在组网中所有合约中事件、多点执行、ws调用、Http调用的折线统计图。

用户管理
~~~~~~~~

用户管理为登录用户提供查看当前用户分布情况和用户活跃情况统计等。

.. _概览-1:

概览
~~~~

|centerManager| 用户管理页面一共有四个模块。

.. _用户类型分布-2:

用户类型分布
~~~~~~~~~~~~

主要统计当前中心管理员所管理的网络中有多少节点管理员，多少个中心管理以及申请节点管理员的数量
|userList|

30天内的申请情况统计
~~~~~~~~~~~~~~~~~~~~

|userApplyGraph|
统计30天之内申请节点管理员的数量和授权成为节点管理员的数量

.. _当前用户信息-1:

当前用户信息
~~~~~~~~~~~~

|authNodeManager| \*
在这个文本框中可以查看当前用户的公私钥，如果其他用户想要用自己的公私钥登录中心管理员界面，可以将自己的公私钥复制到这个文本框中。
\*
将自己的公私钥复制完成之后要点击\ **导入公钥**\ ，将公钥加入到中心管理员本地
\*
然后在\ **本地公钥**\ 中可以看见公钥的前五位，选择自己的公钥，将在\ **我的权限**\ 中展示出当前选择的公钥的角色，如果是中心管理员则拥有中心管理员的一切权限。
\*
如果不是中心管理员或者节点管理员，想要加入当前中心管理员的网络，那么可以在下面的选择框中选中节点管理员，进行\ **角色认证**\ 。

.. _授权与非授权用户列表-1:

授权与非授权用户列表
~~~~~~~~~~~~~~~~~~~~

在中心管理员当前用户信息申请之后，中心管理员登录会在\ **未授权用户管理**\ 表格中看见带有公钥的申请信息，如果同意，则点击\ **授权**\ ，如果不同意点击\ **忽略**\ 就可以，此时这个申请就无效。
|authMan|
授权之后将在\ **授权用户管理**\ 表格中看见授权后的节点列表。如果中心管理员想要移除某个节点管理员的某项角色，则在授权用户管理列表中选择相应的角色，然后点击\ **删除**\ 即可删除选中的角色。
|authMana|

节点管理
~~~~~~~~

.. figure:: ./_static/imgs/centerNodePage.png
   :alt: centerNodePage

   centerNodePage

节点管理为Manager对连接到自己的Cluster节点进行管理的页面,
仅Manager管理员及合约管理者可见.
Manager管理员及合约管理者可在本页面查看节点信息, 并管理可信执行集群.

.. _概览-2:

概览
~~~~

.. figure:: ./_static/imgs/centerNodePreview.png
   :alt: centerNodePreview

   centerNodePreview

概览中显示了该Manager节点所管理的所有节点的统计信息, 包括总节点数量,
总合约数量, 总订阅事件数量, 及可信执行集群数量,
右侧的饼图则为节点的分别处于Online/Offline的数量统计.

节点列表
~~~~~~~~

.. figure:: ./_static/imgs/centerNodeList.png
   :alt: centerNodeList

   centerNodeList

节点列表显示了用户有权限查看的节点信息(Manager管理员可查看全部节点,
合约管理者可查看自己负责管理的Online节点). 包括节点的名称, 状态,
合约数目, 订阅事件数目, 用于节点间P2P通信的PeerID,
用于节点间UDP通信的UDPID, 及节点公钥.

可信执行集群列表
~~~~~~~~~~~~~~~~

.. figure:: ./_static/imgs/centerNodeUnits.png
   :alt: centerNodeUnits

   centerNodeUnits

可信执行集群列表显示了用户有权限查看的可信执行集群信息(Manager管理员可查看全部集群,
合约管理者可查看自己创建的集群). 包括集群的创建者, 集群ID,
集群中节点数目, 以及集群中节点的信息.

用户可点击列表表项的“删除”按钮, 将该集群删除.

创建可信执行集群
~~~~~~~~~~~~~~~~

.. figure:: ./_static/imgs/centerNodeUnitCreate.png
   :alt: centerNodeUnitCreate

   centerNodeUnitCreate

用户可以通过多选节点, 创建新的可信执行集群.
用户可以选择的节点为自己有权限查看的节点,
即Manager管理员从全部节点中选择,
合约管理者可从自己负责管理的Online节点中选择). 选择后点击提交,
即可看到创建成功的提示信息, 该集群将随即显示在可信执行集群列表中.
集群名称由创建者选取, 不能含有双引号,
该名称为合约管理者选择集群时的可见标识.

日志管理
~~~~~~~~

日志管理主要展示准入节点的各项日志信息，一共分为六个模块。 ### 概览
|log|

管理操作分类统计（2日）
~~~~~~~~~~~~~~~~~~~~~~~

|operator|
两日内所有管理类操作的统计饼图，管理类操作主要分为登录类、日志类、维护类、用户类。

管理操作每日统计（2日）
~~~~~~~~~~~~~~~~~~~~~~~

|everyLog| 两日内管理类所有的操作每日操作统计

合约操作分类统计（2日）
~~~~~~~~~~~~~~~~~~~~~~~

|contractLog|
两日内合约操作分类统计饼图，合约操作主要分为连接类和状态更新类。

合约操作每日统计（2日）
~~~~~~~~~~~~~~~~~~~~~~~

|contracteveryLog| 两日内合约操作数量折线统计图。

管理操作日志列表
~~~~~~~~~~~~~~~~

|opList|
管理操作日志的详细信息列表。包括日志时间，管理操作名称，操作对应的节点公钥。默认展示范围是两天，可以自定义获取日志的天数。

合约操作日志列表
~~~~~~~~~~~~~~~~

|contractList|
合约操作日志详细信息列表。包括日志产生时间，合约操作名称，合约操作节点公钥。默认展示范围是两天，可以自定义获取日志的天数。

设置
~~~~

设置页面是节点证书的状态展示以及配置节点证书

.. _概览-3:

概览
~~~~

.. figure:: ./_static/imgs/set.jpg
   :alt: set

   set

证书状态
~~~~~~~~

|licence| 证书状态主要包括许可到期时间和许可节点数量。

配置证书
~~~~~~~~

|plicence| 配置证书模块可以下载节点ID文件或者输入证书信息进行提交。

.. |nodeUserManager| image:: ./_static/imgs/nodeUserManager.jpg
.. |userList| image:: ./_static/imgs/userList.jpg
.. |userActive| image:: ./_static/imgs/userActive.jpg
.. |nodeInfo| image:: ./_static/imgs/nodeInfo.jpg
.. |roleAuth| image:: ./_static/imgs/roleAuth.jpg
.. |codeManage1-1| image:: ./_static/imgs/codeManage1-1.png
.. |codeManage1-2| image:: ./_static/imgs/codeManage1-2.png
.. |permissionShow| image:: ./_static/imgs/permissionShow.png
.. |nullPermission| image:: ./_static/imgs/nullPermission.png
.. |updatePermission| image:: ./_static/imgs/updatePermission.png
.. |closePermission| image:: ./_static/imgs/closePermission.png
.. |genReadme| image:: ./_static/imgs/genReadme.png
.. |dashboard| image:: ./_static/imgs/dashboard.jpg
.. |node| image:: ./_static/imgs/node.jpg
.. |userAll| image:: ./_static/imgs/userAll.jpg
.. |contract| image:: ./_static/imgs/contract.jpg
.. |centerManager| image:: ./_static/imgs/centerManager.jpg
.. |userApplyGraph| image:: ./_static/imgs/userApplyGraph.jpg
.. |authNodeManager| image:: ./_static/imgs/authNodeManager.jpg
.. |authMan| image:: ./_static/imgs/authMan.jpg
.. |authMana| image:: ./_static/imgs/authMana.jpg
.. |log| image:: ./_static/imgs/log.jpg
.. |operator| image:: ./_static/imgs/operator.jpg
.. |everyLog| image:: ./_static/imgs/everyLog.jpg
.. |contractLog| image:: ./_static/imgs/contractLog.jpg
.. |contracteveryLog| image:: ./_static/imgs/contracteveryLog.jpg
.. |opList| image:: ./_static/imgs/opList.jpg
.. |contractList| image:: ./_static/imgs/contractList.jpg
.. |licence| image:: ./_static/imgs/licence.jpg
.. |plicence| image:: ./_static/imgs/plicence.jpg

