{"action":"created","issue":{"url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/722","repository_url":"https://api.github.com/repos/ipfs/ipfs-cluster","labels_url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/722/labels{/name}","comments_url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/722/comments","events_url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/722/events","html_url":"https://github.com/ipfs/ipfs-cluster/issues/722","id":422027783,"node_id":"MDU6SXNzdWU0MjIwMjc3ODM=","number":722,"title":"Interplanetary Infrastructure Layer","user":{"login":"lanzafame","id":5924712,"node_id":"MDQ6VXNlcjU5MjQ3MTI=","avatar_url":"https://avatars0.githubusercontent.com/u/5924712?v=4","gravatar_id":"","url":"https://api.github.com/users/lanzafame","html_url":"https://github.com/lanzafame","followers_url":"https://api.github.com/users/lanzafame/followers","following_url":"https://api.github.com/users/lanzafame/following{/other_user}","gists_url":"https://api.github.com/users/lanzafame/gists{/gist_id}","starred_url":"https://api.github.com/users/lanzafame/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lanzafame/subscriptions","organizations_url":"https://api.github.com/users/lanzafame/orgs","repos_url":"https://api.github.com/users/lanzafame/repos","events_url":"https://api.github.com/users/lanzafame/events{/privacy}","received_events_url":"https://api.github.com/users/lanzafame/received_events","type":"User","site_admin":false},"labels":[{"id":690558968,"node_id":"MDU6TGFiZWw2OTA1NTg5Njg=","url":"https://api.github.com/repos/ipfs/ipfs-cluster/labels/meta","name":"meta","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-03-18T04:01:46Z","updated_at":"2019-07-11T00:46:36Z","closed_at":null,"author_association":"COLLABORATOR","body":"So I was looking at the [github.com/libp2p/testlab](https://github.com/libp2p/testlab) project and they are using Consul for service discovery. And it got me thinking about the similarities between Consul and Cluster, granted this isn't the first time this has occurred to me but my understanding of Cluster is a lot better than the last time it did.\r\n\r\nCurrently, in IPFS Cluster there are a bunch of potentially application-agnostic components, Consensus, Peered, Informer, PeerMonitor. By application-agnostic, I mean that we could replace the management of IPFS nodes concept in IPFS Cluster with the management of any kind of node and those components would be able to stay with minimal changes. On top of that, they provide functionality that is very similar to that of Consul, service discovery, health checking, quasi-K/V store, it even has a similar agent-based deployment. _Side note: it might make sense to rename daemon to agent._ \r\n\r\nThere are a lot of projects out there that require these features and currently, there is no good solution for those that want to run dapps without resorting to cloud-orientated technologies, i.e. Consul. To clarify, I am not suggesting that IPFS Cluster become the project that provides these features, but these features do exist within Cluster as it exists today and I think it would be worthwhile to provide them as a standalone project for people to use to manage their own distributed application nodes.\r\n\r\nSuch a project could actually be used to provide the tools to build, a private overlay DHTs whilst keeping public IPFS network connectivity (Obviously, it would be great if libp2p could do this natively, but who knows when that may actually land), a globally accessible authorized/authenticated K/V store, a global eventually consistent datastore, and whatever the users dream up.\r\n\r\n#### Where to from here with this idea\r\n- Identify a list of features that could/should be provided by an Interplanetary Infrastructure Layer\r\n- I would like to have a discussion around this and piece out which components in IPFS Cluster would be generalised, as required to satisfy the list created from the previous point\r\n- Identify how far the current implementations of those components are from what they would need to be if they were stand-alone\r\n- If all goes smoothly and appears to be worthwhile, extract the appropriate components, import them as dependencies and make them useful to others in the community"},"comment":{"url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/comments/510282304","html_url":"https://github.com/ipfs/ipfs-cluster/issues/722#issuecomment-510282304","issue_url":"https://api.github.com/repos/ipfs/ipfs-cluster/issues/722","id":510282304,"node_id":"MDEyOklzc3VlQ29tbWVudDUxMDI4MjMwNA==","user":{"login":"postables","id":17089485,"node_id":"MDQ6VXNlcjE3MDg5NDg1","avatar_url":"https://avatars1.githubusercontent.com/u/17089485?v=4","gravatar_id":"","url":"https://api.github.com/users/postables","html_url":"https://github.com/postables","followers_url":"https://api.github.com/users/postables/followers","following_url":"https://api.github.com/users/postables/following{/other_user}","gists_url":"https://api.github.com/users/postables/gists{/gist_id}","starred_url":"https://api.github.com/users/postables/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/postables/subscriptions","organizations_url":"https://api.github.com/users/postables/orgs","repos_url":"https://api.github.com/users/postables/repos","events_url":"https://api.github.com/users/postables/events{/privacy}","received_events_url":"https://api.github.com/users/postables/received_events","type":"User","site_admin":false},"created_at":"2019-07-11T00:46:36Z","updated_at":"2019-07-11T00:46:36Z","author_association":"MEMBER","body":"# Ideal features For Interplanetary Infrastructure Layer:\r\n\r\n* Distributed K/V Store\r\n  * Allow me to synchronize K/V pairs across multiple IPFS hosts\r\n  * `coreos/etcd` replacement that is contained within libp2p\r\n  * Can be used to provide IPFS Cluster-like replication without directly using IPFS Cluster\r\n  * I had a conversation with @hugomrdias at IPFS Camp about \"Fast IPNS\", and one of the things he mentioned was an implementation of a router in js-ipfs that uses cloudflare web workers distributed K/V storage for storing IPNS records. This could allow for something exactly like that, but with a globally distributed K/V storage layer instead of the web workers K/V storage."}}
{"actor":{"display_login":"postables"}}