diff --git a/docs/project_architecture/README.md b/docs/project_architecture/README.md deleted file mode 100644 index 9d16c093b..000000000 --- a/docs/project_architecture/README.md +++ /dev/null @@ -1,4 +0,0 @@ - - -## Hyperledger Explorer - diff --git a/docs/project_functionalities/README.md b/docs/project_functionalities/README.md deleted file mode 100644 index 90a6b69fe..000000000 --- a/docs/project_functionalities/README.md +++ /dev/null @@ -1,9 +0,0 @@ - - - -## Hyperledger Explorer functionalities - -- Hyperledger Explorer - - - diff --git a/docs/source/_static/css/styles.css b/docs/source/_static/css/styles.css index 1d61332b8..4601e0549 100644 --- a/docs/source/_static/css/styles.css +++ b/docs/source/_static/css/styles.css @@ -8,7 +8,8 @@ input[type='checkbox'] { margin: 0px; transition: transform 0.25s ease; cursor: zoom-in; - overflow: auto; + overflow-y: auto; + overflow-x: auto; display: block; } diff --git a/docs/source/_static/images/db_model_diagram.png b/docs/source/_static/images/db_model_diagram.png new file mode 100644 index 000000000..2b076e448 Binary files /dev/null and b/docs/source/_static/images/db_model_diagram.png differ diff --git a/docs/source/_static/images/db_service_diagram.png b/docs/source/_static/images/db_service_diagram.png new file mode 100644 index 000000000..acc23f3f1 Binary files /dev/null and b/docs/source/_static/images/db_service_diagram.png differ diff --git a/docs/source/_static/images/diagram_client_app_components.png b/docs/source/_static/images/diagram_client_app_components.png new file mode 100644 index 000000000..618180eaf Binary files /dev/null and b/docs/source/_static/images/diagram_client_app_components.png differ diff --git a/docs/source/_static/images/diagram_explorer_js.png b/docs/source/_static/images/diagram_explorer_js.png new file mode 100644 index 000000000..26c9efabc Binary files /dev/null and b/docs/source/_static/images/diagram_explorer_js.png differ diff --git a/docs/source/_static/images/diagram_gateway_class.png b/docs/source/_static/images/diagram_gateway_class.png new file mode 100644 index 000000000..05c5c9698 Binary files /dev/null and b/docs/source/_static/images/diagram_gateway_class.png differ diff --git a/docs/source/_static/images/diagram_main_js.png b/docs/source/_static/images/diagram_main_js.png new file mode 100644 index 000000000..79525fa10 Binary files /dev/null and b/docs/source/_static/images/diagram_main_js.png differ diff --git a/docs/source/_static/images/diagram_persistence_package.png b/docs/source/_static/images/diagram_persistence_package.png new file mode 100644 index 000000000..6f3083d84 Binary files /dev/null and b/docs/source/_static/images/diagram_persistence_package.png differ diff --git a/docs/source/_static/images/diagram_routes.png b/docs/source/_static/images/diagram_routes.png new file mode 100644 index 000000000..569fbf1f0 Binary files /dev/null and b/docs/source/_static/images/diagram_routes.png differ diff --git a/docs/source/_static/images/diagram_sync_js.png b/docs/source/_static/images/diagram_sync_js.png new file mode 100644 index 000000000..3fd5f5523 Binary files /dev/null and b/docs/source/_static/images/diagram_sync_js.png differ diff --git a/docs/source/_static/images/diagram_sync_package.png b/docs/source/_static/images/diagram_sync_package.png new file mode 100644 index 000000000..f4b8d5fc0 Binary files /dev/null and b/docs/source/_static/images/diagram_sync_package.png differ diff --git a/docs/source/_static/images/diagram_synchronizer_js.png b/docs/source/_static/images/diagram_synchronizer_js.png new file mode 100644 index 000000000..f2499a0d6 Binary files /dev/null and b/docs/source/_static/images/diagram_synchronizer_js.png differ diff --git a/docs/source/_static/images/hl_block_filter.png b/docs/source/_static/images/hl_block_filter.png index f3dcb41f2..27f20b558 100644 Binary files a/docs/source/_static/images/hl_block_filter.png and b/docs/source/_static/images/hl_block_filter.png differ diff --git a/docs/source/_static/images/hl_block_list.png b/docs/source/_static/images/hl_block_list.png index bbf792801..3b2650fb9 100644 Binary files a/docs/source/_static/images/hl_block_list.png and b/docs/source/_static/images/hl_block_list.png differ diff --git a/docs/source/_static/images/hl_chaincodes.png b/docs/source/_static/images/hl_chaincodes.png index 795d8236c..5ea8dc6df 100644 Binary files a/docs/source/_static/images/hl_chaincodes.png and b/docs/source/_static/images/hl_chaincodes.png differ diff --git a/docs/source/_static/images/hl_dark_theme.png b/docs/source/_static/images/hl_dark_theme.png index df3b45764..53202ec8b 100644 Binary files a/docs/source/_static/images/hl_dark_theme.png and b/docs/source/_static/images/hl_dark_theme.png differ diff --git a/docs/source/_static/images/hl_dashboard.png b/docs/source/_static/images/hl_dashboard.png index 6ff747141..58a7608a5 100644 Binary files a/docs/source/_static/images/hl_dashboard.png and b/docs/source/_static/images/hl_dashboard.png differ diff --git a/docs/source/_static/images/hl_sync_diagram.png b/docs/source/_static/images/hl_sync_diagram.png new file mode 100644 index 000000000..20d1f5af5 Binary files /dev/null and b/docs/source/_static/images/hl_sync_diagram.png differ diff --git a/docs/source/_static/images/hl_tx_details.png b/docs/source/_static/images/hl_tx_details.png index d7727f17e..afdae0355 100644 Binary files a/docs/source/_static/images/hl_tx_details.png and b/docs/source/_static/images/hl_tx_details.png differ diff --git a/docs/source/_static/images/host_sync.png b/docs/source/_static/images/host_sync.png new file mode 100644 index 000000000..9bf3f93dd Binary files /dev/null and b/docs/source/_static/images/host_sync.png differ diff --git a/docs/source/_static/images/local_sync.png b/docs/source/_static/images/local_sync.png new file mode 100644 index 000000000..7eea64601 Binary files /dev/null and b/docs/source/_static/images/local_sync.png differ diff --git a/docs/source/_static/images/logs_app.png b/docs/source/_static/images/logs_app.png new file mode 100644 index 000000000..4c4044799 Binary files /dev/null and b/docs/source/_static/images/logs_app.png differ diff --git a/docs/source/_static/images/logs_console.png b/docs/source/_static/images/logs_console.png new file mode 100644 index 000000000..88274c3c7 Binary files /dev/null and b/docs/source/_static/images/logs_console.png differ diff --git a/docs/source/_static/images/logs_db.png b/docs/source/_static/images/logs_db.png new file mode 100644 index 000000000..8fdc2e4b9 Binary files /dev/null and b/docs/source/_static/images/logs_db.png differ diff --git a/docs/source/_static/images/logs_subdirs.png b/docs/source/_static/images/logs_subdirs.png new file mode 100644 index 000000000..f42bda61d Binary files /dev/null and b/docs/source/_static/images/logs_subdirs.png differ diff --git a/docs/source/architecture/backend.rst b/docs/source/architecture/backend.rst index 9e0b326d9..e8a9bcf71 100644 --- a/docs/source/architecture/backend.rst +++ b/docs/source/architecture/backend.rst @@ -26,13 +26,13 @@ Main components of the HLExplorer back end can be listed as: .. toctree:: :maxdepth: 1 + + webserver restapi gateway dbservices - metrics synchronizer websockets - configuration logs diff --git a/docs/source/architecture/configuration.rst b/docs/source/architecture/configuration.rst deleted file mode 100644 index 267da776d..000000000 --- a/docs/source/architecture/configuration.rst +++ /dev/null @@ -1,77 +0,0 @@ - -.. SPDX-License-Identifier: Apache-2.0 - - -Configuration -=========================================== - -One of the requirements to receive blocks, transactions, and config properties from Hyperledger Fabric blockchain is to configure Hyperledger Explorer -to be able to connect to the default fabric network. For this we tried to have a minimal as possible configuration by taking advantage of the latest -Hyperledger Fabric `Service Discovery `__, -and `Gateway `__. -As of now Hyperledger Explorer is able to connect only to a single Hyperledger Fabric network, and we believe that in the next releases we may be -able to have more than one network connected. - -In previous versions we had a single file -`config.json `__ file that was used to configure -Hyperledger Explorer, after the minimal configuration we divided in two parts, `config.json `__, -and `connection-profile `__, that described the network properties. - -Sample Hyperledger Explorer configuration with one of the fabric sample network first-network, described below: - -On another terminal: - -.. code-block:: bash - - cd blockchain-explorer/app/platform/fabric - -Modify config.json to point to your first-network network `connection-profile `__: - -.. code-block:: json - - { - "network-configs": { - "first-network": { - "name": "first-network", - "profile": "./connection-profile/first-network.json" - } - }, - "license": "Apache-2.0" - } - -:: - - "first-network" is the name of your connection profile, and can be changed to any name. - - "name" is a name you want to give to your fabric network, you can change only value of the key "name". - - "profile" is the location of your connection profile, you can change only value of the key "profile" - - Modify connection profile in the JSON file first-network.json: - Change "fabric-path" to your fabric network disk path in the first-network.json file: - /blockchain-explorer/app/platform/fabric/connection-profile/first-network.json - Provide the full disk path to the adminPrivateKey config option, it usually ends with "_sk", for example: - - * "/fabric-path/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk" - - * "adminUser" is the the admin user of the network, in this case it's fabric CA or an identity user. - - * "adminPassword" is the password for the admin user. - - * "enableAuthentication" is a flag to enable authentication using a login page, setting to false - will skip authentication. - - - - - - - - -.. toctree:: - :maxdepth: 1 - - - dbconfig - hlfabricconfig - syncconfig diff --git a/docs/source/architecture/databaselayer.html b/docs/source/architecture/databaselayer.html new file mode 100644 index 000000000..e467deba0 --- /dev/null +++ b/docs/source/architecture/databaselayer.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/databaselayer.rst b/docs/source/architecture/databaselayer.rst index ae82d9a3d..326acb629 100644 --- a/docs/source/architecture/databaselayer.rst +++ b/docs/source/architecture/databaselayer.rst @@ -3,11 +3,30 @@ Database Layer -=========================================== +============== +Hyperledger Explorer uses `PostgreSQL `__ database. The information about blocks, +transactions, channels etc will be stored in this database. This is a mature database +for real-time web applications as the updates will be retrieved from database instead of +the application polling data from the Hyperledger Fabric network. -.. TODO +The following diagram shows a high level view of the Hyperledger Explorer data model. + +.. raw:: html + :file: ./databaselayer.html + + +.. note:: + + Please note, the connecting lines are just for info purposes to illustrate the relation, there are no constraints defined in the current database. + +Physical schema +~~~~~~~~~~~~~~~~~~ + +The script `explorerpg.sql `__ describes +Hyperledger Explorer database. Creation of the database is a mandatory step and it is done by running the script `createdb.sh `__, +detailed steps and instructions are provided in the `README.md `__ file. diff --git a/docs/source/architecture/dbconfig.rst b/docs/source/architecture/dbconfig.rst deleted file mode 100644 index 037ef58f1..000000000 --- a/docs/source/architecture/dbconfig.rst +++ /dev/null @@ -1,11 +0,0 @@ - -.. SPDX-License-Identifier: Apache-2.0 - - -Database Configuration -=========================================== - -.. TODO - - - diff --git a/docs/source/architecture/dbservices.html b/docs/source/architecture/dbservices.html new file mode 100644 index 000000000..ea398af96 --- /dev/null +++ b/docs/source/architecture/dbservices.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/dbservices.rst b/docs/source/architecture/dbservices.rst index bd8b9b10e..a02c07f94 100644 --- a/docs/source/architecture/dbservices.rst +++ b/docs/source/architecture/dbservices.rst @@ -5,4 +5,19 @@ Database Services =========================================== -.. TODO +This module is a set of API's that handle the interactions with the database. The layer is isolated from the HTTP request and response. +Hyperledger Explorer at this time persisting data from the Hyperledger Fabric only, no delete operations involved. + +The following API's are part of the database services: + 1. `PersistenceFactory `__, responsible for platform based blockchain. + 2. `Persist `__, has a set of getters, and setters to get services such as CRUDService, MetricServices, and PgService. + 3. `PgService `__ is responsible to connect, and perform any data manipulation. + 4. `CRUDService `__, has a set of platform specific, and interacts with models that are storing data related to Hyperledger Fabric network blockchain. + 5. `MetricService `__, is in charge of computing statistics of the blockchain activity, per hours, minutes, and organizations. + +Below diagram shows above mentioned API's. + +.. raw:: html + :file: ./dbservices.html + + diff --git a/docs/source/architecture/gateway.html b/docs/source/architecture/gateway.html new file mode 100644 index 000000000..af74958cd --- /dev/null +++ b/docs/source/architecture/gateway.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/gateway.rst b/docs/source/architecture/gateway.rst index 42072e655..4336bd8d2 100644 --- a/docs/source/architecture/gateway.rst +++ b/docs/source/architecture/gateway.rst @@ -9,7 +9,74 @@ Due to the fact that Hyperledger Fabric network channel can constantly change, t different organizations in the network, will come and go, the need of reconfiguration for the Hyperledger Explorer becomes very difficult to maintain and get real time updates of the fabric network. -Hypeledger Explorer took another approach to connect to Hyperledger Fabric after the introduction of the "fabric-network" module by the -`Hyperledger Fabric SDK for NodeJS `__. +After the introduction of the "fabric-network" module by the +`Hyperledger Fabric SDK for NodeJS `__. Hyperledger Explorer uses +Gateway, and a connection profile to connect to the fabric network. Read more about `Gateway `__. + +`FabricGateway `__ shown in the diagram below. + + +.. raw:: html + :file: ./gateway.html + + +Configuration using Gateway and connection profile +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +One of the requirements to connect to a Hyperledger Fabric network to receive blocks, transactions, and other is to configure Hyperledger Explorer +to be able to connect to the default fabric network. For this we tried to have a minimal as possible configuration by taking advantage of the latest +Hyperledger Fabric `Service Discovery `__, +and `Gateway `__. +As of now Hyperledger Explorer is able to connect only to a single Hyperledger Fabric network, and we believe that in the next releases we may be +able to have more than one network connected. + +In previous versions we had a single file +`config.json `__ file that was used to configure +Hyperledger Explorer, after the minimal configuration we divided in two parts, `config.json `__, +and `connection-profile `__, that described the network properties. + +Sample Hyperledger Explorer configuration with one of the fabric sample network first-network, described below: + +On another terminal: + +.. code-block:: bash + + cd blockchain-explorer/app/platform/fabric + +Modify config.json to point to your first-network network `connection-profile `__: + +.. code-block:: json + + { + "network-configs": { + "first-network": { + "name": "first-network", + "profile": "./connection-profile/first-network.json" + } + }, + "license": "Apache-2.0" + } + +:: + + "first-network" is the name of your connection profile, and can be changed to any name. + + "name" is a name you want to give to your fabric network, you can change only value of the key "name". + + "profile" is the location of your connection profile, you can change only value of the key "profile" + + Modify connection profile in the JSON file first-network.json: + Change "fabric-path" to your fabric network disk path in the first-network.json file: + /blockchain-explorer/app/platform/fabric/connection-profile/first-network.json + Provide the full disk path to the adminPrivateKey config option, it usually ends with "_sk", for example: + + * "/fabric-path/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk" + + * "adminUser" is the the admin user of the network, in this case it's fabric CA or an identity user. + + * "adminPassword" is the password for the admin user. + + * "enableAuthentication" is a flag to enable authentication using a login page, setting to false + will skip authentication. + -.. TODO diff --git a/docs/source/architecture/hl_ui_high_level.rst b/docs/source/architecture/hl_ui_high_level.rst index 474b304a6..fb989b17b 100644 --- a/docs/source/architecture/hl_ui_high_level.rst +++ b/docs/source/architecture/hl_ui_high_level.rst @@ -3,11 +3,28 @@ -Front End +Presentation Layer / Front End ======================================== -When choosing a framework, or a library in most of the cases we look at the performance, maturity, and support this is where ReactJs was a benefit -to us and used in our HLExplorer front end. +When choosing a framework, or a library in most of the cases we look at the performance, maturity, and support this is where ReactJs +was a benefit to us and used in our HLExplorer front end. + +Why ReactJs? +~~~~~~~~~~~~~ + +- Plainness + - Component-based approach + - Use of well-defined lifecycle + - JavaScript makes React very simple to learn, build professional web. + - Use of a special syntax called JSX that allows to mix HTML with JavaScript. +- Data Binding + - One-way data binding, control of the flow of data to components through the dispatcher, a one control point. +- Performance + - React uses several clever techniques to minimize the number of costly DOM operations required to update the UI. +- Testing + - Easy to test, rich set of libraries, like Jest, and React Testing Library +- Straightforward to learn + - Easily understand React knowing JavaScript, and the good part: for react you just need basic knowledge of HTML and CSS. The high-level architecture of presentation layer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/source/architecture/hlfabricconfig.rst b/docs/source/architecture/hlfabricconfig.rst deleted file mode 100644 index 2fedfd6af..000000000 --- a/docs/source/architecture/hlfabricconfig.rst +++ /dev/null @@ -1,11 +0,0 @@ - -.. SPDX-License-Identifier: Apache-2.0 - - -Hyperledger Fabric Configuration -=========================================== - -.. TODO - - - diff --git a/docs/source/architecture/index.html b/docs/source/architecture/index.html index 938606751..6d488daad 100644 --- a/docs/source/architecture/index.html +++ b/docs/source/architecture/index.html @@ -18,6 +18,4 @@
- - diff --git a/docs/source/architecture/index.rst b/docs/source/architecture/index.rst index 9238ae2cc..f283ee060 100644 --- a/docs/source/architecture/index.rst +++ b/docs/source/architecture/index.rst @@ -7,6 +7,6 @@ Hyperledger Explorer Architecture The high-level architecture of Hyperledger Explorer - .. raw:: html :file: ./index.html + diff --git a/docs/source/architecture/logs.rst b/docs/source/architecture/logs.rst index d598f15f1..7d775a7f4 100644 --- a/docs/source/architecture/logs.rst +++ b/docs/source/architecture/logs.rst @@ -16,20 +16,53 @@ Why do we log? * Error tracking, when errors do occur, we need to know when they started, and how often they occurred. * Analyzing, logs are valuable sources of information. We can analyze logs to discover usage patterns and make decisions. + * There are two directories created by the application, one for standalone sync, and when running with explorer + * ``$blockchain-explorer/logs/``. + * ``$blockchain-explorer/logs/sync``. + + * Both have same subdirectories + * ``app/``. + * ``db/``. + * ``console/``. + + +.. container:: content-tabs + + .. tab-container:: apps + :title: Application logs + + Information, debug, error and other types of events, these logs are located in ``$blockchain-explorer/logs/app/`` directory. + + .. raw:: html + :file: ./logs_app.html + + .. tab-container:: db + :title: Database logs + + Useful information, debug, and errors are recorded during the CRUD operations, logs are located in ``$blockchain-explorer/logs/db`` directory. + + .. raw:: html + :file: ./logs_db.html + + + .. tab-container:: console + :title: Console logs + + Different levels of messages to stdout and stderr, all the console logs are also redirected to a console.log files for the auditing purposes, location the the logs are in ``$blockchain-explorer/logs/console`` directory. + + .. raw:: html + :file: ./logs_console.html + + + + -We have divided logs by the following categories: -* Application logs - * We record, information, debug, error and other types of events, these logs are located in ``$blockchain-explorer/logs/app`` directory. -* Database logs - * Useful information, debug, and errors are recorded during the CRUD operations, logs are located in ``$blockchain-explorer/logs/db`` directory. -* Console logs - * We print different levels of messages to stdout and stderr, all the console logs are also redirected to a console.log files for the auditing purposes, location the the logs are in ``$blockchain-explorer/logs/console`` directory. .. note:: diff --git a/docs/source/architecture/logs_app.html b/docs/source/architecture/logs_app.html new file mode 100644 index 000000000..cc5429bff --- /dev/null +++ b/docs/source/architecture/logs_app.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/logs_console.html b/docs/source/architecture/logs_console.html new file mode 100644 index 000000000..a95e6f1f4 --- /dev/null +++ b/docs/source/architecture/logs_console.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/logs_db.html b/docs/source/architecture/logs_db.html new file mode 100644 index 000000000..acbca78af --- /dev/null +++ b/docs/source/architecture/logs_db.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/metrics.rst b/docs/source/architecture/metrics.rst deleted file mode 100644 index 98ff8f840..000000000 --- a/docs/source/architecture/metrics.rst +++ /dev/null @@ -1,8 +0,0 @@ - -.. SPDX-License-Identifier: Apache-2.0 - - -Metric Services -=========================================== - -.. TODO diff --git a/docs/source/architecture/restapi.rst b/docs/source/architecture/restapi.rst index 57b5f50cb..d8fcc6839 100644 --- a/docs/source/architecture/restapi.rst +++ b/docs/source/architecture/restapi.rst @@ -43,6 +43,17 @@ The REST API list of features include: +Routes +~~~~~~~~ +There are three main routes defined, authorization, database, and platform. + + + +.. raw:: html + :file: ./routes.html + + + Swagger ~~~~~~~~ To learn more about REST API, and use an interactive API console to submit requests you can take advantage of the `SWAGGER `__ diff --git a/docs/source/architecture/routes.html b/docs/source/architecture/routes.html new file mode 100644 index 000000000..39261b34f --- /dev/null +++ b/docs/source/architecture/routes.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+ + +
+ +
+ + + diff --git a/docs/source/architecture/syncconfig.rst b/docs/source/architecture/syncconfig.rst deleted file mode 100644 index 9da124dfe..000000000 --- a/docs/source/architecture/syncconfig.rst +++ /dev/null @@ -1,11 +0,0 @@ - -.. SPDX-License-Identifier: Apache-2.0 - - -Synchronizer Configuration -=========================================== - -.. TODO - - - diff --git a/docs/source/architecture/synchronizer.rst b/docs/source/architecture/synchronizer.rst index f27f9e2be..f848cff87 100644 --- a/docs/source/architecture/synchronizer.rst +++ b/docs/source/architecture/synchronizer.rst @@ -5,4 +5,28 @@ Synchronizer =========================================== +TODO + +Incremental changes can have a big impact on application, and network performance. + + +Synch process +-------------- + +There are two modes of synchronization: + 1. Standalone, with no UI preview + 2. Both, preview and synchronization + + +Blocks import +-------------- + + + + + + + + + .. TODO diff --git a/docs/source/architecture/webserver.html b/docs/source/architecture/webserver.html new file mode 100644 index 000000000..327f42884 --- /dev/null +++ b/docs/source/architecture/webserver.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + +
+
+ + + diff --git a/docs/source/architecture/webserver.rst b/docs/source/architecture/webserver.rst new file mode 100644 index 000000000..651c67f94 --- /dev/null +++ b/docs/source/architecture/webserver.rst @@ -0,0 +1,20 @@ + +.. SPDX-License-Identifier: Apache-2.0 + + + + +Webserver +========== + +`Node.js `__ is the backend framework for implementing the server-side components, and `Express `__, a Web framework for Node.js. +application. The main entry point of the Hyperledger Explorer is +the `Broadcaster `__ class, +that will initialize the application, WebSockets, create a Express server, and other processes to start the application. + +Broadcaster class diagram shown in the image below. + +.. raw:: html + :file: ./webserver.html + + diff --git a/docs/source/conf.py b/docs/source/conf.py index ea816ee02..3aebf390d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -124,7 +124,18 @@ # further. For a list of options available for each theme, see the # documentation. # -# html_theme_options = {} +html_theme_options = { +'canonical_url': '', + 'analytics_id': 'UA-XXXXXXX-1', # Provided by Google in your dashboard + 'logo_only': False, + 'display_version': True, + 'prev_next_buttons_location': 'both', + # Toc options + 'collapse_navigation': True, + 'sticky_navigation': True, + 'navigation_depth': 4, + 'includehidden': True, +} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -145,7 +156,7 @@ # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. -htmlhelp_basename = 'HyperledgerExplorerdoc' +htmlhelp_basename = 'HyperledgerExplorerDocument' # -- Options for LaTeX output ------------------------------------------------ diff --git a/docs/source/index.rst b/docs/source/index.rst index ade4b7b66..e7d659af6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,6 +12,7 @@ Hyperledger Explorer documentation ********************************** .. image:: images/Hyperledger_Explorer_Logo_Color.png + :width: 650px diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index a47cedeb1..fe42b2bae 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -14,7 +14,7 @@ The ability to visualize data is of critical importance, in order to extract bus functionality. What are the key features of Hyperledger Explorer? -------------------------------------------------------------------------------------------------------- +----------------------------------------------------- - Web application with a rich user interface, developed using latest technologies, such as ReactJS, Google material ui, web-sockets, and others. - Blockchain module that can listen, and query a Hyperledger Fabric network. - Utility that can: @@ -26,12 +26,12 @@ What are the key features of Hyperledger Explorer? - Get real time notification of new blocks. +Please proceed to next page, or click the link below to get familiar with Hyperledger Explorer screens. + .. toctree:: :maxdepth: 1 - - -.. presentation/index + presentation/index diff --git a/docs/source/presentation/index.rst b/docs/source/presentation/index.rst index 2f8804487..276f7ad6d 100644 --- a/docs/source/presentation/index.rst +++ b/docs/source/presentation/index.rst @@ -52,12 +52,14 @@ the block details accessed from the provided link. Dark theme screen ----------------- -The dark theme mode it is another view of the Hyperledger Explorer, there can be some potential benefits by switching to it. +The dark theme mode is another view of the Hyperledger Explorer, there can be some potential benefits by switching to it. .. raw:: html :file: ./hl_dark_theme.html + + Network -------------- Network screen consist of the list of the properties that channel is configured to. @@ -66,6 +68,8 @@ Network screen consist of the list of the properties that channel is configured :file: ./hl_network.html + + Block list -------------- Block list displays a list of the block attributes, and links to block, and transaction pop up details window. Please notice when mouse over @@ -77,13 +81,19 @@ by date range, and selected organization from the list. :file: ./hl_block_list.html + + Block details window -------------------- -TODO add content +This screen represents in detail a block. You can see the creation of the block, number of transactions in this block, block hash, data hash, +and the previous hash that connects +to the previous block. For usability you can copy any of the hashes using the clipboard icon. .. raw:: html :file: ./hl_block_details_window.html + + Filter result -------------- By default block list will return one day woth of data, but you can modify the search criteria to search @@ -95,6 +105,7 @@ The :guilabel:`Reset` button can be used to reset the date range, and the organi :file: ./hl_filter_window.html + Transaction list ----------------- Transaction list screen has almost identical functionality as the block list screen. @@ -103,6 +114,7 @@ Transaction list screen has almost identical functionality as the block list scr :file: ./hl_transaction_list.html + Transaction details ------------------- Transaction details is similar to block details, JSON data can be folded/unfolded for the preview purposes. @@ -111,6 +123,8 @@ Transaction details is similar to block details, JSON data can be folded/unfolde :file: ./hl_tx_details.html + + Chaincode list --------------- Chaincode list displays the chaincode properties and has filter, and sort functionalities. Displayed list is for the current selected channel. @@ -119,6 +133,7 @@ Chaincode list displays the chaincode properties and has filter, and sort functi :file: ./hl_chaincodes.html + Channel list -------------- Channel list displays all the channels, and it's properties, has similar filter, and sort functionalities as chaincode list. @@ -128,6 +143,7 @@ Channel list displays all the channels, and it's properties, has similar filter, + Metrics -------- @@ -170,3 +186,6 @@ block/transaction, hours or minute. + + + diff --git a/docs/source/tutorials/run_explorer.rst b/docs/source/tutorials/run_explorer.rst index bb37a6b61..985bb49d9 100644 --- a/docs/source/tutorials/run_explorer.rst +++ b/docs/source/tutorials/run_explorer.rst @@ -5,6 +5,20 @@ Running HL Explorer ********************************* +Dependencies +~~~~~~~~~~~~~ + +Following are the software dependencies required to install and run hyperledger explorer: + +Nodejs 8.11.x (Note that v9.x is not yet supported) +PostgreSQL 9.5 or greater +jq +Linux-based operating system, such as Ubuntu or MacOS +Verified Docker versions supported: + +Docker CE 18.09.2 or later +Docker Compose 1.14.0 + TODO