concordium / concordium-network-dashboard Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Bug Description
The network dashboard displays an error for the updateBakerThreshold
update transaction:
Error: Problem with the value at json.transactionSummaries[0].type.contents: "updateBakerStakeThreshold" Unknown UpdateType type: updateBakerStakeThreshold
We should also test whether other update transactions are displayed properly.
Steps to Reproduce
update.json
(update the effective time and timeout to an appropriate Unix timestamp): "seqNumber": 2,
"effectiveTime": 1620207603 ,
"timeout": 1620207602,
"payload": {
"updateType": "bakerStakeThreshold",
"update": "80001"
}
}
concordium-client consensus chain-update update.json --key 1.json --key 2.json --key 3.json
Expected Result
A transaction description in the block explorer that corresponds to the updated transaction.
Description
The block explorer shows a list of all transactions. If there are many transactions in a block, the total number of transactions is not visible directly. It would be nice to show the number of transactions in the summary.
Bug Description
The network dashboard says that "The amount depends on the number of slots since the last block, as each slot adds 7.555665e-10 of GTU." This is only correct assuming a total supply of 1 GTU.
Steps to Reproduce
Click on "Chain" and then "Distributed minted GTU".
Expected Result
Dashboard provides correct information, e.g., "The amount depends on the number of slots since the last block, as the total supply of GTU is increased by a factor of 1 + 7.555665e-10 in every slot."
Actual Result
Dashboard says "The amount depends on the number of slots since the last block, as each slot adds 7.555665e-10 of GTU."
Bug Description
Long memo text in transaction lookup and block explorer on dashboard overflows box
Steps to Reproduce
e.g.
Expected Result
Actual Result
Versions
Bug Description
The rejection message on testnet is incorrectly showing that adding baker failed because of an account already being a delegator.
Which is not the case for this account.
771e5b996f151e19dee74384afad049079586b33ab96cdba020045f7d77ab09b
3G5srtaeRvy2uzyaiheY3ZZ6nqTkDg1kRm59xWVnFo8CoEiZ6Y
Steps to Reproduce
0.0
on testnet using the concordium-client
.Expected Result
Rejection reason should be "Transaction fee commission fee was not within the allowed range" to match the concordium-client.
Actual Result
https://dashboard.testnet.concordium.com/chain/872172970c1f520f66fd1e00464962db286c8effe0fcb109725298ae776532e0
Versions
Bug Description
The dashboard will try to parse the hex values attached to a memo as CBOR. Apparently, it will return a valid parse result if there is a valid CBOR prefix. It should check whether all bytes were used during parsing.
Steps to Reproduce
--memo-raw file.txt
where the file.txt contains: "N1 -> C1"
.224e31202d3e204331220a
(Or view the block on testnet: https://dashboard.testnet.concordium.com/chain/7ea16fee6946ad954098db99f3782e23be62e2d86cde38c5939710f6640c97a5)
Expected Result
The hex value is shown, as it is not valid CBOR.
Actual Result
-3
is shown, as the first byte is parsed and the remaining discarded, as can be seen on http://cbor.me/?bytes=22((4E.31.20.2D.3E.20.43.31.22.0A
Versions
Bug Description
If an account transaction fails because of insufficient funds, a link will be in the block explorer for the testnet4 documentation, which is no longer online.
Can be reproduced by making a transfer of GTU with insufficient funds.
The small "i" on the Block Time and Finalization widgets (which provides a tooltip with a short explanation of the value) can be hard to see in dark mode.
One suggestion could be to make the circle slightly lighter to make it more visible.
The green and pink colors of the network dashboard, do not contrast well with the light background, especially when used for the light text in the widgets and in single node view.
A suggestion could be to make the colors slightly darker in light mode, to contrast better with the light background.
Bug Description
The chain display does not show the block summary, instead showing the loading indicator. Additionally it makes requests to "blockByHeight" with height -1, which should also be fixed, since this request does not make sense.
Steps to Reproduce
Point the network dashboard to a network whose chain only contains the genesis block.
Expected Result
Chain explorer shows the block summary of the genesis block.
Actual Result
The chain display does not show the block summary, instead showing the loading indicator.
Versions
-- Conclusion after discussion with @abizjak: Better error message on network dashboard the backend is not reachable --
Bug Description
Wrong display of transaction lookup for multisig transaction that is not finalized yet:
After few seconds, probably after transaction is finalized, the display is correct:
transaction hash: 009ee4b5680de1234c4c5a2f1d9ac59d487642df1e0eba2803842d59513fc212
Steps to Reproduce
Expected Result
Transaction not finalized or sth similar.
Actual Result
See above.
Versions
Bug Description
The development mode of the network dashboard doesn't get through startup on Ubuntu 20.10. It works on Ubuntu 20.04.
Steps to Reproduce
Run npm run dev
.
Expected Result
A browser window with the compiled dashboard should open automatically.
Actual Result
The run script crashes with an error message that a tool named gnome-open
cannot be found. The website cannot be manually opened afterwards either.
As gnome-open
has been defunct for quite some time, and also isn't available for Ubuntu 20.04, the solution is not to get it installed.
Full output of npm run dev
:
8:48:19 AM - Starting compilation in watch mode...
[server]
[client] (node:1252921) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
[client] (Use `node --trace-deprecation ...` to show where the warning was created)
[client] ℹ 「wds」: Project is running at http://localhost:8090/
[client] ℹ 「wds」: webpack output is served from /public/
[client] ℹ 「wds」: Content not from webpack is served from /home/mo/work/network-dashboard
[server]
[server] 8:48:21 AM - Found 0 errors. Watching for file changes.
[server] The App version is 1.0.0
[server] [HPM] Proxy created: / -> http://localhost:8090/
[server] [HPM] Proxy created: / -> http://localhost:8090/
[server] App listening on port 3001!
[server] WARNING: This is the development-only backend.
[server] See here for the real ones:
[server] https://gitlab.com/Concordium/p2p-client/blob/develop/src/bin/collector.rs
[server] https://gitlab.com/Concordium/p2p-client/blob/develop/src/bin/collector_backend.rs
[client] ℹ 「wdm」: Hash: 05232b4de718c14b87d4
[client] Version: webpack 4.44.1
[client] Time: 1846ms
[client] Built at: 08/10/2021 8:48:22 AM
[client] Asset Size Chunks Chunk Names
[client] index.html 1.35 KiB [emitted]
[client] main-05232b4d-bundle.js 3.71 MiB main [emitted] [immutable] main
[client] vendors-05232b4d-bundle.js 1.66 MiB vendors [emitted] [immutable] vendors
[client] Entrypoint main = vendors-05232b4d-bundle.js main-05232b4d-bundle.js
[client] [0] multi (webpack)-dev-server/client?http://localhost:8090 (webpack)/hot/dev-server.js @babel/polyfill ./src/client/client 64 bytes {main} [built]
[client] [./node_modules/@babel/polyfill/lib/index.js] 686 bytes {vendors} [built]
[client] [./node_modules/@babel/polyfill/lib/noConflict.js] 567 bytes {vendors} [built]
[client] [./node_modules/core-js/library/fn/global.js] 87 bytes {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/index.js?http://localhost:8090] (webpack)-dev-server/client?http://localhost:8090 4.29 KiB {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.51 KiB {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.53 KiB {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/utils/createSocketUrl.js] (webpack)-dev-server/client/utils/createSocketUrl.js 2.91 KiB {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/utils/log.js] (webpack)-dev-server/client/utils/log.js 964 bytes {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/utils/reloadApp.js] (webpack)-dev-server/client/utils/reloadApp.js 1.59 KiB {vendors} [built]
[client] [./node_modules/webpack-dev-server/client/utils/sendMessage.js] (webpack)-dev-server/client/utils/sendMessage.js 402 bytes {vendors} [built]
[client] [./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {vendors} [built]
[client] [./node_modules/webpack/hot sync ^\.\/log$] (webpack)/hot sync nonrecursive ^\.\/log$ 170 bytes {main} [built]
[client] [./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.59 KiB {vendors} [built]
[client] [./src/client/client.ts] 657 bytes {main} [built]
[client] + 332 hidden modules
[client] Child HtmlWebpackCompiler:
[client] 1 asset
[client] Entrypoint HtmlWebpackPlugin_0 = __child-HtmlWebpackPlugin_0
[client] [./node_modules/html-webpack-plugin/lib/loader.js!./src/client/index.ejs] 1.63 KiB {HtmlWebpackPlugin_0} [built]
[client] ℹ 「wdm」: Compiled successfully.
[client] /home/mo/work/network-dashboard/node_modules/open-browser-webpack-plugin/index.js:46
[client] if (err) throw err;
[client] ^
[client]
[client] Error: Command failed: /home/mo/work/network-dashboard/node_modules/open/vendor/xdg-open "http://localhost:3001"
[client] /home/mo/work/network-dashboard/node_modules/open/vendor/xdg-open: 500: gnome-open: not found
[client]
[client] at ChildProcess.exithandler (child_process.js:308:12)
[client] at ChildProcess.emit (events.js:314:20)
[client] at maybeClose (internal/child_process.js:1051:16)
[client] at Socket.<anonymous> (internal/child_process.js:442:11)
[client] at Socket.emit (events.js:314:20)
[client] at Pipe.<anonymous> (net.js:673:12) {
[client] killed: false,
[client] code: 4,
[client] signal: null,
[client] cmd: '/home/mo/work/network-dashboard/node_modules/open/vendor/xdg-open "http://localhost:3001"'
[client] }
[client] npm ERR! code ELIFECYCLE
[client] npm ERR! errno 1
[client] npm ERR! [email protected] dev-client: `webpack-dev-server -w`
npm ERR! Exit status 1
[client] npm ERR!
[client] npm ERR! Failed at the [email protected] dev-client script.
[client] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[client]
npm ERR! A complete log of this run can be found in:
[client] npm ERR! /home/mo/.npm/_logs/2021-08-10T06_48_22_196Z-debug.log
[client] npm run dev-client exited with code 1
Versions
main
branch.Bug Description
Updating the foundation account results in a JSON parse error.
Steps to Reproduce
View block 2879c611d9fb82200d9f6be75d3649b838f275d210473a83fd68dec4d227c823.
Expected Result
A message saying that the foundation account was updated.
Bug Description
For a too long memo text, the dashboard shows the following
Steps to Reproduce
Expected Result
Actual Result
See screenshot.
Versions
The dashboard currently prompts the user to enable cookies on every visit if you keep clicking no. It should remember whether the user has already said no to cookies.
Disallow
on the cookie bannerNo banner shown
Banner is shown again
Bug Description
The block explorer fails to correctly parse a rejected transaction, where the reason is that the account is not allowed to handle encrypted transfers.
Steps to Reproduce
On a chain create an account and add an additional credential to that account. Then try to send some GTU to the encrypted balance for that account. This will fail and the error can be seen in the network dashboard. I performed the above on the stagenet.
Expected Result
The network dashboard should parse the reject reason correctly, and display a nice error message that the users can understand.
Actual Result
The network dashboard fails when parsing the JSON:
Error: Json.Decode.oneOf failed in the following 3 ways: (1) The Json.Decode.oneOf at json.outcomes.e886d9f4767fdc10cb6dcf95fe5af564362ae9890c8305be566f78a8847b28bd.result failed in the following 2 ways: (1) Problem with the given value: { "outcome": "reject", "rejectReason": { "tag": "NotAllowedToHandleEncrypted" } } Expecting an OBJECT with a field named events
(2) Problem with the value at json.rejectReason: { "tag": "NotAllowedToHandleEncrypted" } Unknown RejectReason: NotAllowedToHandleEncrypted (2) Problem with the given value: { "status": "finalized", "outcomes": { "e886d9f4767fdc10cb6dcf95fe5af564362ae9890c8305be566f78a8847b28bd": { "hash": "f69005a3e78fee1d3b539ddc5f47c3770773367188ea0c39c52cc4bf0421bb4f", "sender": "4bJ8rG6cf7i84MZky3L1kY9fEN9NvTWdAT3frxHs4vCVd7TLDT", "cost": "76900", "energyCost": 769, "result": { "outcome": "reject", "rejectReason": { "tag": "NotAllowedToHandleEncrypted" } }, "type": { "contents": "transferToEncrypted", "type": "accountTransaction" }, "index": 0 } } } Expecting a STRING (3) Problem with the given value: { "status": "finalized", "outcomes": { "e886d9f4767fdc10cb6dcf95fe5af564362ae9890c8305be566f78a8847b28bd": { "hash": "f69005a3e78fee1d3b539ddc5f47c3770773367188ea0c39c52cc4bf0421bb4f", "sender": "4bJ8rG6cf7i84MZky3L1kY9fEN9NvTWdAT3frxHs4vCVd7TLDT", "cost": "76900", "energyCost": 769, "result": { "outcome": "reject", "rejectReason": { "tag": "NotAllowedToHandleEncrypted" } }, "type": { "contents": "transferToEncrypted", "type": "accountTransaction" }, "index": 0 } } } Expecting null
Versions
Task description
Synchronous contract calls will introduce a few new events and possibly some other minor API changes in transaction summaries.
The network dashboard must be updated to support those.
There are two new events only
-- | Contract invocation was interrupted. This only applies to V1 contracts.
| Interrupted {
-- |Address of the contract that was interrupted.
iAddress :: !ContractAddress,
-- |Partial event log generated in the execution before the interrupt.
iEvents :: ![Wasm.ContractEvent]
}
-- | Contract execution resumed. This only applies to V1 contracts.
| Resumed {
-- |Address of the contract that was interrupted.
rAddress :: !ContractAddress,
-- |Whether the operation that was invoked succeeded.
rSuccess :: !Bool
}
that need to be displayed.
Bug Description
Lookup of transaction with no input leads to indefinite "loading" indicator
Steps to Reproduce
Click on transaction lookup with no input in the input box.
Expected Result
The dashboard tells me "invalid transaction hash" or similar.
Actual Result
Indefinite "loading" indicator.
Versions
Bug Description
Several different types are written vertically. Seems like the horizontal space allowed is too little. There are likely more cases. these are just the ones I've found.
Baker account address
https://dashboard.testnet.concordium.com/chain/ef09010ca573602a53736e85b30f979ed22b8000f6e35885b0e0bc30d7b884a8
https://dashboard.testnet.concordium.com/chain/05f3b0a74f80a6d3c2a51f3c66b9edf5f9a6a8b43b7ca0db34a0c742e1ad301e
Module references
https://dashboard.testnet.concordium.com/chain/d247992c27beddf7d5c18144959603075d29e89cf9cf13e13a7b6708eb7c7506
Contract Address
https://dashboard.testnet.concordium.com/chain/81e7f27e853c8b2bafafd731f276e8e75613e510298bc32d1ab2957d7f002cea
Account address
https://dashboard.testnet.concordium.com/chain/6d18305a2742fd223f1dcc785e2acae2d472b21ca13b3f43f65e180241657001
Note that account addresses are shown correctly in the tokenomics section.
Versions
Bug Description
The CCD/EUR exchange rate update tool triggers immediate effective time of the exchange rate update, which is currently shown as
Update enqueued to take effect 1970-01-01 01:00:00.00 UTC+1
. This must be changed to either the correct date or maybe just "immediately".
The exchange rate is shown as e.g.
Update the CCD to Euro conversion rate to 1099511627776 EUR = 7923234721.380352 CCD
. This should be changed to a rounded value as 1 EUR = xyz CCD
.
The CCD/EUR tool updates the exchange rate currently every 30 minutes on testnet, see e.g.
Versions
It would be nice if the network dashboard could provide the slot and epoch of a block in the chain explorer.
It would also be valuable to display when the next epoch transition is.
Make sure that for the mainnet launch, all links that point to testnet or stagenet are updated to point to mainnet.
Description
The dashboard displays the factor by which the GTU supply in increased per slot. Since this is a very small number, it is not very meaningful. It would be more understandable to convert this, e.g., to the yearly minting rate.
Steps to Reproduce
Click on "Chain" and then "Distributed minted GTU".
Expected Result
Show an easily understandable message about the minting.
Actual Result
Minting per slot is shown.
Task description
We want to check at least the basics, formatting, typechecking, and run any tests if they exist.
Bug Description
When peers from two different chains reports to the dashboard it sometimes shows data from the chain that it should not.
Steps to Reproduce
Expected Result
The mixed data does not appear.
Actual Result
The data from the old chain appears once in a while.
Chrome on Ubuntu.
When I open the testnet or mainnet dashboard, I am not able to see the remaining column(s) of data in the table. They are cut off and there is no option to scroll.
Steps to Reproduce
Open the dashboard in Edge or Chrome.
Expected Result
Should be able to see all data in the table.
Versions
Task description
Support update types for adding ARs and IPs
Bug Description
The dashboard must have a version number.
Bug Description
The network dashboard does not parse key updates correctly after Concordium/concordium-node@9be7f7c
The parsing should be updated to match what is sent from the node.
Task description
"The same way" being that the network dashboard will attempt to parse CBOR and display if it can.
Three new transaction types will be added as part of the R2 release. The block explorer must be updated to support them.
Related
Bug Description
Contract address not copyable from details view.
Copying still works outside the details view.
Steps to Reproduce
Expected Result
The contract address is copied and a banner is shown at the top of the screen indicating this.
Actual Result
The address is not copied and no banner appears.
Versions
Description
The conversion rate between microGTU and EUR is displayed as is, which is hard to read, e.g., see
https://dashboard.mainnet.concordium.software/chain/36a1e4ea1f0e9e125f7831e41e71ca7ae5562c7052ec226e15b0624e9204cbbd
It would be better to display it as GTU/EUR, so in the linked example it would say "2.777778 GTU per EUR" or "1 EUR = 2.777778 GTU".
Versions
Bug Description
When opening the block explorer for a non-existing block the page displays a moving circle for "loading in progress".
Steps to Reproduce
Open a non-existing block in the explorer, such as this.
Expected Result
A "block not found" error message.
Bug Description
The network dashboard does not display all transactions. In particular the stake update which does not update the stake (i.e., the stake remains the same) is not displayed.
[
{
"hash": "7ee9409b47b8da049200c192adad6f018131d380a5a297a81604ff31fd7c8110",
"sender": "3hxLuF67LmdXWRyL2aF9g8SKMi8mptghkwmpyFutphk7Uqgaom",
"cost": "128049",
"energyCost": 462,
"result": {
"events": [
{
"restakeEarnings": false,
"bakerId": 40374,
"tag": "BakerSetRestakeEarnings",
"account": "3hxLuF67LmdXWRyL2aF9g8SKMi8mptghkwmpyFutphk7Uqgaom"
}
],
"outcome": "success"
},
"type": {
"contents": "updateBakerRestakeEarnings",
"type": "accountTransaction"
},
"index": 0
},
{
"hash": "3a30658ab4991de8a367d8656b51301139785e285f8f3d071abe8ba37bbc2357",
"sender": "4XfDxQMmB6MewTF6zsqyFUcKUbCD4YkAvVKzHehsUYxQL6Z2MG",
"cost": "129989",
"energyCost": 469,
"result": {
"events": [],
"outcome": "success"
},
"type": {
"contents": "updateBakerStake",
"type": "accountTransaction"
},
"index": 1
}
]
Expected Result
Both transactions are displayed.
Actual Result
Only one is.
Versions
Description
Some of the statistics, such as total length and last finalization are computed (at least partly) by taking the value with maximum frequency.
After a protocol update, if the nodes have not upgraded they remain stuck at the height of the protocol update. Since the remaining nodes take a few seconds to update when they receive a new block, or finalize, there are cases where the maximum frequency, e.g., finalized height, is indeed the old one. Hence the flip flopping can sometimes be seen on the network dashboard.
The network dashboard should be configure so that it excludes nodes with too old version from calculation of averages. This should be a build-time parameter.
Steps to Reproduce
See description.
Expected Result
No flip flopping. Averages are stable.
Actual Result
Occasional flip-flopping. Averages fluctuate.
Versions
Bug Description
Typo in the description of the transaction fee reward page.
Steps to Reproduce
Observe the dashboard.
Expected Result
Each block rewards the baker baking it, this reward is paid by the transaction fees and some fraction of the Gas Account.
Actual Result
Each block rewards the baker baking it, this reward is paid by the transaction fees and the some fraction of the Gas Account.
Description
Looking at the network Dashboard, heading for row Client actually matches Node versions, not Client ones as we use them.
Steps to Reproduce
Open Network Dashboard.
Expected Result
Row heading Node shows Node versions.
Actual Result
Row heading Client shows Node versions.
Versions
Bug Description
Steps to Reproduce
Submit a transaction that results in "poolClosed" error.
Expected Result
A reasonable message is displayed.
Actual Result
A parsing error is displayed.
Versions
Bug Description
Versions
Task description
On the chain visualisation page some of the blocks have purple bars on them, but it is not explain anywhere what these mean.
We should add a way to display a text explaining what they mean, either in the form of a mouseover or an "i" icon like for "Finalization Time'.
Since these bars move it is important to ensure good experience where the text does not randomly disappear because of the update of the visualisation.
The text should say something like (it depends a bit on where it will appear)
"The proportion of nodes which have this block as the best block."
If the text will not be a hover over the bar itself, but somewhere else, then a more appropriate text would be
"The purple bars represent the proportion of the nodes which have the given block as the best block."
Bug Description
Looking at the block where the rewards are distributed, it seems that if the 'next' button at the bottom of the page doesn't work.
This makes it look as if only some of the bakes were rewarded.
Steps to Reproduce
Look at the block where rewards are distributed.
https://dashboard.testnet.concordium.com/chain/a05ad715161b745b7b77f2dbaafd280bd0983596e32bad995b7a50b56cdad46d
Expected Result
Page can be switched with 'next' button so user can go through the whole list.
Actual Result
Next button doesn't work.
Versions
Bug Description
Parsing a transaction summary with a NotAllowedMultipleCredentials
fails.
Steps to Reproduce
View https://dashboard.eu.staging.concordium.com/chain/296fb92df10d924123435f95d72ab7c1eb519e5714da1015c5e834ff898d40d6
Or try to add a credential to an account with a non-zero encrypted amount.
Expected Result
The reject reason should be parsed and shown correctly.
Versions
Bug Description
Long contract names make the block explorer overflow.
Steps to Reproduce
Expected Result
Break contract name into multiple lines
Actual Result
Versions
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.