-
Notifications
You must be signed in to change notification settings - Fork 969
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
Design Spec for a Sharding Visualization Front-End #94
Comments
This issue now has a funding of 0.31 ETH (159.32 USD @ $513.94/ETH) attached to it.
|
Hi @justpixel! Could you please comment with your plan of action for this ticket / any clarifying questions you might have? Excited to see your interest. |
@vs77bb @rauljordan I think the first step is to build a wireframe. Do you use any IM where we can chat? |
@justpixel join us on gitter |
@justpixel are you still working on this issue?
|
@rauljordan @prestonvanloon
Is this a good starting point? |
This looks good! I think what would also be good to see is a geographical distribution of nodes e.g. like https://www.ethernodes.org, where you can select by a shard, or it's colour-coded by different shards, and brightness could be how dense an area is. And as mentioned above, "Some way of visualizing the actual p2p network topology" would be nice, but that might be tricky until the p2p sharding protocol is more well-developed. |
@justpixel Can you elaborate on why this is a good design? Transaction load / shard: How is this quantified? Is the average fullness of last N blocks for each shard? There will be around 100 shards, possibly more in the future. While these widgets look nice in the wireframe you have presented, have you considered how this will look for all shards? If you are looking for some inspiration or examples of existing dashboards/charts:
@jamesray1 has some great feedback. VIsualizing the p2p sharded network is a really nice thing to have. If you are looking for general feedback on the aesthetics of your widgets wireframe; I think these color choices are nice. |
@justpixel What does the color represents for Collations / shard widget? |
Oh, another note on the colours. Pastel colours are less distracting than saturated colours.
p. 21, http://www.cs.tufts.edu/comp/177/docs/ColorInGraphics.pdf I agree that representing 100 shards or more at once may be difficult. Being able to visually represent a single shard may be easier; although cross-shard transactions complicate matters, but we don't need to worry about that until phase 4. |
@prestonvanloon @jamesray1 I'll be away for two weeks, so if it's anybody that wants to continue the work from here feel free to jump in. |
I took a stab at a design for information at the period level per each shard and I came up with this timeline concept that allows the shard to be selected and the period. Not sure whether there will ever be more than 5 periods but if so then that could probably switch to a dropdown as well. I am unsure of the bubbles on top, they would most likely go underneath as some sort of short stats for that block and shard. As for the details under the period, that could be expanded to the whole screen and show graphs but I am unsure about the specifics of this whole sharding thing so I didn't know what to put in there... |
Nice! The expectation is that the number of shards will be constant at around 100 initially, although they may grow over time. So being able to not just pick a block and see how many shards it has, but see a range of blocks where there was X number of shards, then the next range where the number of shards increased, and so on. But I suggest not implementing that visualization until we have a better idea of shard numbers and dynamics. For each shard you could have a visualization of a sparse binary Merkle tree, and maybe stats like ETH Gas station (although that could be done by an external provider, like ETH Gas Station) e.g. on gas burners and a tx pool. Also see this, it has a visualization of network topology across shards and within shards: https://twitter.com/VitalikButerin/status/991021062811930624. |
Here are two different graphs that I believe can fit the role of displaying cross-shard interactions, let me know which one seems better! Here is a link to the mockups if you'd like to interact with them directly: https://connorchristie.github.io/geth-shard-design/ |
Really great mockup @ConnorChristie ! I like the graph on the left for cross-shard tx's as it is easier for me to see the links between shards. I imagine the graph on the right would get pretty hairy the more shards are added and it could become difficult to visualize the edges. Thanks for putting this together, this is awesome. |
Great job @ConnorChristie. I prefer the left one as it's more manageable when shards get large. Do you have a mockup to display the stats of the individual shard? Everything else looks really good! |
It looks really good @ConnorChristie , I like how you have all the shard metrics on display. It looks really intuitive for the user. Also the one on the left looks better for cross-shard visualization. Great Job! |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work has been started. has committed to working on this project to be completed 11 months, 2 weeks from now. |
Final Requirements for Closing the BountyHi @ConnorChristie and all, as a final requirement to close this bounty, we'd like you to answer the following user stories in order to understand how your design offers efficient solutions to them.
|
I have just put some more work into the mockups to allow these use cases to be performed! Much of the inspiration came from etherscan so if it looks kinda like etherscan, that's why. I however, tried to add more graphs :) I have included a few screenshots below but I would encourage you to interact with the live version here: https://connorchristie.github.io/geth-shard-design/ Answers to the user stories above:
It should be noted that collators are now called notaries along with the collations possibly being labeled by the period number. The notary pool and publisher should also be distinguished in the design, ideally on the shard detail page. Collation detail page. Unsure of whether to include cross-shard transactions in the main list since you want the details about which shard the receipt is going to and the transaction created for that receipt on the other shard. Since a transaction can contain a receipt and send it as txn to another shard, I tried to symbolize that here with the main transaction labeling which shard and address it is going to and then include the supplementary txn in the "Cross-Shard Transactions" list. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work for 0.31 ETH (251.56 USD @ $811.47/ETH) has been submitted by: @vs77bb please take a look at the submitted work:
|
That would be an upper bound on the MB, assuming all collations are full. |
Hi @ConnorChristie, we really like your responses to the questions and the work you put together. Great job! We are happy to now close this bounty and award the ETH to you. |
@rauljordan If there are any other use case workflows you would like me to consider, I would be happy to adapt this design to them! I have also been thinking about adding a graphic regarding the actual network topology with node connectivity among the different shards. At first glance of this issue, it didn't seem like you were necessarily looking for a user facing design but rather a more developer and internal focused design. Because of this, let me know if there are any more internal tools you'd like me to add. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done The funding of 0.31 ETH (227.49 USD @ $733.85/ETH) attached to this issue has been approved & issued to @ConnorChristie.
|
The goal of this potential project is to create a web front-end that visualizes a sharded Ethereum blockchain network. Could be built as an extension to ethstats or as its own, independent interface.
Requirements / Acceptance Criteria
Cool to Have
Alternative
Create a command line tool to visualize a sharded network. Can be baked into a sharding client implementation and could be a combination of ASCII art and text to visualize the different information pertaining to each shard.
This is a long, multi-step project, so at this point we are only looking for a design spec with possible visuals of how the front-end would look or how ethstats can be extended to accommodate these requirements.
The necessary reading to understand the context of the requirements and basic terms around sharding can be found in our project's README. Many sections, however, are deprecated while a minimal sharding protocol is still being researched.
We see this as a good first bounty for Prysmatic Labs.
The text was updated successfully, but these errors were encountered: