zkparty / trusted-setup-frontend Goto Github PK
View Code? Open in Web Editor NEWThe KZG Ceremony web browser implementation
Home Page: https://ceremony.ethereum.org
The KZG Ceremony web browser implementation
Home Page: https://ceremony.ethereum.org
When the browser is busy, the Sign button takes too long to get the PotPubkeys and open the Metamask popup to contribute. This could cause the user to double click the button and get two Metamask popups and mess up with the workflow.
Fix: put a loading spin in the Sign button and disable it until browser gets the PotPubkeys
The sequencer API is returning different error codes / HTTP status code to notify the frontend what happened when a specific route was called. Right now the frontend only tries to get a correct HTTP status code with a contribution object but does not handle the other errors
Show /info/status
in a nice way
design coming soon
When signing on a url from ethereum.org
with metamask, it prompts
You are signing-in to kzg-ceremony-sequencer-dev.fly.dev.
Which is the url of the sequencer. This discrepancy makes users like me worried and scared of signing anything with my wallet.
Provide two options for the theme of the copy throughout the process. The primary text currently in place tells a story and uses language that makes the experience enjoyable. A second option with more simplified language and explanation would help towards the goal of enabling as many people as possible to be able to understand and participate in this ceremony.
This could potentially be treated in the code as another "locale" or "language". On the front-end we should consider better ways to handle this beyond just doubling the list length for the language dropdown. A toggle that switches between the two modes for whatever language the user is on could be appropriate.
Show participants how many people are waiting. Use the /info/state
sequencer route
The account used to ECDSA sign the contribution message must be the same as is used to sign in. This must be actively verified before requesting the ECDSA signature. i.e. the account selected in Metamask (or other browser wallet) must be the same as used for SIWE.
Also, the network selected in the wallet must be Ethereum mainnet, If possible, request a change to the network if it's not correctly set.
Given that soon we are going to add more languages and translations to the site, it would be beneficial to break the translations out of the current i18n.js
file.
This will allow us:
When user moves the mouse in the entropy input page, the snake starts coloring to indicate the user progress. It would be great to smooth that animation and/or add additional details to make the UX better
The entropy input page asks the user to move the mouse to generate entropy while the snake image gets colored. To improve user experience, we could implement a custom cursor that would notify the user that he needs to move it in order to continue. The current ideas we have are:
The website currently supports internationalization. The copy on the page is currently in English and Spanish, although plans are to translate the copy into additional languages with the goal of allowing even more users to access and participate in the ceremony.
I am viewing this with chrome on windows
We have an offer to provide a Spanish translation of our text. We first need to implement internationalization capabilities, then we can accept a PR for that translation, and any other languages that might be offered.
We’ll need a simple, unobtrusive way to select the language in the page header, and an i18n wrapper around text elements.
i think we should consider reformatting from a long horizontal modal to a square/ vertical rectangle - stacking “My keys” above “sequencer acknowledgment” and add a scroll if necessary, similarly for the other transcript modal
edit Dec 16 3:48 ET - an idea on what the modal could look like.
A page to view user contributions to the ceremony
In effort to provide more context and understanding to users who will have questions about the ceremony.
To be included in translations.
Update, #64 initializes the FAQ page, but there are still a few outstanding tasks before calling this issue closed:
TODO:
sharing the ceremony.ethereum.org URL should produce a preview card similar to the image below. as a stretch, it would be nice if it had a dynamic display which shared the total number of complete contributions at that time (not a priority at this time). im not entirely sure how to configure this on the site, carl might have an idea
we can use this image for the preview card for now, let me know if you need any modifications to ratio/ otherwise
To enable visitors to view in different lang.
design: https://www.figma.com/file/PxzmldIzJ6hLkNZxWnXtnH?node-id=1439:364400#294038188
Reported by Joseph C. 'Seems to get stuck on Bind Your Contribution'
Temporary change to the tweet intent text to make it clear that it's a test run.
Every contribution will be linked to an Ethereum account (0x123.....). It is not possible to save the ENS at contribution time because if I had access to an specific ENS at that time I could impersonate him/her. But in the present and future, people should be able to search for a contribution of a known user like vitalik.eth
I think we can implemented a small ENS search ( const address = provider.lookupAddress( ens )
) when users start typing in the search bar
It is not working and there is no trial token as in Chrome
We should have an instance of the final version code deployed on IPFS such that this is a viable option for many users to run the front end. The aim is to have a content-addressed link for the sake of transparency wrt the code that users are running.
this page is looking really good! great work
just a thought, should these contribution modal layouts match the one available at the “dankshard draws near”? (edit: just realizing that that's the "sequencer acknowledgment" - i didn't realize they were different things and other people probably wont. it would be good to add some introduction text explaining why this page is important.)
This is bad for UX and defeats the purpose of deleting the secret (should a user actually save the password.
We require a reproducible build such the result will produce an identical hash (for IPFS purposes) for anyone, provided they are building from the same source. This will encompass the https://github.com/zkparty/wrapper-small-pot
In the /src/pages/doubleSign.tsx
, there is a section that retrieves potPubkeys from the wasm (use wasm.getPotPubkeys) and signs it using Metamask. This section should be activated when the sequencer/crypto library implements a getPotPubkeys function (checkout derive_taus).
Portis, Torus and Formatic require specific http headers to work in our website (they use auth popups). Wasm code requires specific http headers that block popups.
Approach:
public/sw.js
and see if the HTTP headers can be set for one page (doubleSign) and not for othersThe popup requires COOP/COEP settings that aren't available in Firefox. We can avoid this requirement if the signin is done with a redirect, then redirect back to our site upon completion.
The current interface stops users from mobile devices from experiencing the website at all. Part of this is due to concerns over hardware performance, and potential browser session timeouts on mobile.
If it is decided to not allow contributions from mobile, I think we could still generate some wins by at least enabling the core of the site for mobile users, which is to include an additional FAQ page (#55) and View contributions page (#56). This will allow a mobile user to at least learn a bit about what is going on, even if they are unable to contribute directly from their mobile device.
If we end up not restricting mobile devices from participating, we need to consider easier ways for user to input entropy, as it would currently involve tapping quite a bit. This may also include small updates to the copy explaining that step.
Optional items to consider:
Also,
Suggested: 'your random inputs are being combined with others'
Fix the flower overlap in the contributing and complete screens
In PR #103 we introduce copy in 14 new languages which highlights some layout bugs in a few languages where the copy runs longer than in English. Noticing this in the following languages: bn, de, es, fr, in, pt, ru, tr
Note the input and button extending into the circular frame
To minimize issues with reframing this, I would suggest we decrease the font size a reasonable amount to allow the test to fit properly in all languages.
Currently we have two separate header components (Header and HeaderJustGoingBack), and a new instance of one of these is placed on every page independently. This is leading to the header component being unmounted and remounted with a fresh instance which loses the state of which language to show.
We are repeating a lot of layout logic by manually adding a Header and Footer component to each page. We should have one "Layout" component that handles the logic for overall page layout (ie, always render Header, Main and Footer sections, and depending on the route, alter the way these appear). This would allow us to remove the separate instances of the header and footer components on each page, and prevent them from losing state upon path change.
Note we already have a "Layout" component, but I would argue we should rename this to something like "SharedStyledComponents" since this is not really a layout component, but instead a bunch of themed components that are shared throughout the app.
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.