Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Iteration 3 #6

Closed
7 tasks done
ey51 opened this issue Mar 3, 2020 · 3 comments
Closed
7 tasks done

Iteration 3 #6

ey51 opened this issue Mar 3, 2020 · 3 comments

Comments

@ey51
Copy link

ey51 commented Mar 3, 2020

  • When in N (genesis on bottom) orientation:
    • blue score axis should be on the right side,
  • Auto zoom to fit the dag width to the screen when changing orientation.
  • When hovering a block:
    • A different way to highlight parent blocks, child blocks. The green/red link highlight is disliked by Yonatan. One option is to highlight the actual connected blocks, rather than the links.
    • If it's an accepted chain block, a way to highlight blocks that it accepts (they will be blocks that reference it in their acceptingBlockHash field. It will also be up to k blocks.)
    • Notice that for a selected chain block, the set of blocks it accepts and the set of parent blocks might be overlapping, so the highlighting needs to show each in a different way.
  • performance drop since last iteration.
@ey51 ey51 added this to To do in BlockDAG Visualizer Mar 3, 2020
@ey51 ey51 mentioned this issue Mar 3, 2020
13 tasks
@aspect
Copy link
Collaborator

aspect commented Mar 8, 2020

DAGViz server has been updated with the latest release at https://dagviz.daglabs.com

This is a cumulative update on the DAGViz project:

@ey51 - please go over all the issues and re-test/close them. Please take a look and test #7, #8, #9 and perhaps establish "Iteration 4"; We have cleaned up and re-factored parts of the rendering engine significantly changing components related to previous bugs.

For remaining Iteration 2 and 3 features, this week we will be addressing block confirmations, orientation lock to N/E and graph direction indication.

There are currently 2 major issues:

  • We are experiencing isChainBlock state reconciliation issues described in Issues correctly maintaining isChainBlock state when listening to MQTT #10
  • We have discovered that the rendering engine produces serious rendering artifacts due to FP precision issues that start becoming apparent only once the chain grows past 100k blocks. We are working on resolving the issue. Unfortunately, it will probably take a few days to tackle this as we will have to introduce additional translation or scale of all graph properties.

NOTE: The above-mentioned issue #10 ultimately results in the incorrect isChainBlock values which end up looking like SPC forks. These forks are not visible when using CENTER: FIXED mode for SPC block positioning (as in the fixed mode all SPC blocks are blindly forced to zero position on the layout axis).

In this update:

General

  • DAGViz will now reset it's database and chain state if it detects that Kasparov is publishing a new (significantly smaller) chain. This way it will self-reset and keep tracking the new chain if the underlying test/dev nets are reset.
  • We have refactored object creation and grouping in the rendering engine as well as implemented some optimizations resulting in a 3x performance increase.
  • Hovering over a block now highlights parent and child blocks using darker colors and slightly thicker links. Please feedback, suggest colors, etc.
  • Hovering over SPC blocks now shows links to all accepting blocks in the different color
  • Vertical graph orientation now positions navigator on the right side.
  • Auto-fit occurs on orientation change, but when the user enters vertical orientation the zoom is conservative, so you don't feel the auto-fit as much.
  • Tracking mode is now working properly - as long as the MQTT feed is live. However, if the user interacts with the platform, the tracking mode is suspended.

Synchronization

  • DAGViz currently uses two-stage synchronization where data is acquired via the REST API, until the chain is caught up, at which point DAGViz starts tracking the data strictly via MQTT.

Arrows

A number of experimental modes have been introduced for arrows:

  • OFF
  • SINGLE - creates a single (slightly larger) connector - works well with curves
  • MULTI-S - creates multiple connectors that are straight (perpendicular to the block) - works great with curve links
  • MULTI-R - creates multiple connectors that are rotated (toward the direction of the link) - works great with straight links

I think the best will be an eventual combination of 2 modes: CURVES: ON + ARROWS: MULTI-S; and CURVES: OFF + ARROWS: MULTI+R;

@ey51
Copy link
Author

ey51 commented Mar 8, 2020

DAGViz server has been updated with the latest release at https://dagviz.daglabs.com

Great version @aspect
I will give thorough feedback promptly.

@ey51
Copy link
Author

ey51 commented Mar 8, 2020

Closing this.
Opened #14 , #15 for vertical view.
Opened #16 for DAG direction signaling.

@ey51 ey51 closed this as completed Mar 8, 2020
BlockDAG Visualizer automation moved this from In progress to Done Mar 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

2 participants