-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
libp2p mesh testing #719
Comments
node.js (non-browser) intensive test suite: https://github.com/gavinmcdermott/js-libp2p-pstn this is a great start but has been built with a few different design goals (non-browser, short and intensive, fully connected mesh) metamask mesh tests would need to be:
|
cross-team interface/deployment will most likely happen in this way: |
marking as blocked until I have some concrete action items ( happy to work on some libp2p-side stuff if needed ) |
This is blocked by this big crypto PR libp2p/js-libp2p-crypto#12 |
heres a new sketch of the explicit ethereum obj types ( 8 types in total )
|
here is an attempt at a concise-yet-hacky set ( 6 types )
The hack works like this: since ethereum objects determine their leaf types from context, it doesnt fit neatly into a couple resolvers -- but if we cleverly use |
here is an ultra-concise ( with only 2 types! ), by maximizing path fanciness
|
theres one weird thing but i realize it would be true for the 6-type and 2-type version resolving |
@wanderer what do you think of the 2-type solution? |
zomg unified ethereum ipld proposal ( 1 type 😎 )
note: special chars can be changed to maintain compliance with ipld-query spec. paths are ether pre-defined by the type or specified as hex, so avoiding collision is not a hard problem. |
that said, we have room for 16384 codes before we hit the 3 byte range, which is currently reserved for apps |
tho im sure in the future ill be interested in adding this fancy type casting for some other reason, like converting eth contract storage values into cids or other formats |
@wanderer btw jbenet and daviddias said dont hack the paths, better to have more formats |
Here are the Ethereum objects as I have mapped them so far. While there are only two underlying structures (RLP and Eth-(Secure-)Trie), they interpret the format of the leaf values based on context, which is lost when resolving at the IPLD level. I sketched out some versions that used fewer IPLD formats by employing some cleverness in the path naming conventions. (see here MetaMask/metamask-extension#719 (comment)). The consensus was to be explicit instead of clever, thusly the list of objects as I've proposed. I'd additionally like to reserve 0x99-0x9f for additional Ethereum objects I may have missed or may be introduced when Ethereum milestone Metropolis is released.
Major TODOS: |
who likes todo lists? you do! |
TIL "identity hash fn" multiformats/multihash#13 (comment) |
consider using rlpx over libp2p transport |
proposal: blocks via ipfs-http-api on parity openethereum/parity-ethereum#4172
|
identifying RPC method data/index requirements
|
for those playing along at home, i made a thing: https://kumavis.github.io/metamask-mesh |
migrated js-ipld-eth-* modules to ipld org |
(a few weeks back) friends at Parity added an http server that serves parity data from CIDs. it got merged into master : ) |
tracking parity integration here ipfs/js-ipfs#763 |
ipfs routing improvements ipfs/js-ipfs#833 |
here is the current custom rolled parity->ipfs server https://github.com/kumavis/ipfs-eth-bridge |
currently eth-ipfs bridge only serves blocks, transactions (no tries), state and storage tries, no tx receipts or no tx receipt tries. These are missing b/c parity does not index them by hash (tx receipt) or doesn't store them at all (tx trie, tx receipt tree). the bridge is available over http as https://ipfs.lab.metamask.io |
what if: generic ipfs merkle tree heat map could show us what is happening on ethereum |
we will need to: create a special index for { tx tries, tx rxs, tx rx tries } |
what if: (in the long run): a box that users can just "download and run". Will be like this https://github.com/kumavis/ipfs-eth-bridge With the idea "Contribute to the light clients mesh, making it stronger and resilient by downloading this application". |
merkelize and serve the Canonical Hash Table over ipfs |
serverless block explorer To make it more sexy, people gets it from IPNS. Pros: We get more people pulling IPLD links, making them available faster. |
This thread is the sequel to this effort MetaMask/eth-ipfs-browser-client#1 |
closing this thread in favor of the new repo |
In the name of facilitating libp2p-based Ethereum light client development, we're discussing running some libp2p mesh testing in the metamask extension.
Some Design Goals:
Progress Tracker:
The text was updated successfully, but these errors were encountered: