Protocol Labs Research
π Making Protocol Labs Protocol Labs.
Welcome to the main research landing and launch repo. This is a companion to the Protocol Labs Research website, which is the primary public reference for our work.
Our mission is to pursue open, collaborative, high-impact research that pushes the boundaries of what computing can do for humanity.
What's in This Repo?
Subscribe to this repo if you want to be updated about new research ideas and discussions. If you want to closely follow the work of Protocol Labs Research, however, we strongly suggest also subscribing to our official mailing list for quarterly newsletters, funding opportunity announcements (FOAs), research talk announcements, and more (customizable subscription preferences). You may also want to follow us on Twitter.
How to Navigate Protocol Labs Research - What's in the Other Repos
Many research ideas start here as responses to important questions, and then potentially develop into RFPs or their own research topic repositories. Other open problems are nucleated in the ResDev Lab discussion boards.
Unique Structural Repos
There are two public structural repos that contain directories, instructions, or other information needed for performing research at PL.
protocol/research-grants
- contains grant information and RFPs for applicants
- you may also want to check out our grant portal
[protocol/research] (this repo)
- default location of all research topics before they've reached prototype stage
- contains index of public research
- contains links, the list of open problem statements (in the issues)
Lab Repos
The Research Development Labs and the AbstractionLab maintain their own github repositiories and discussion boards for topics relevant to their primary research interests:
- AbstractionLab: decentralized knowledge graphs and operations on knowledge
- ConsensusLab: consensus and blockchain scalability
- CryptoComputeLab: the intersection of applied cryptography, high performance computing, and programming language design-
- CryptoNetLab: public good cryptography -- creating secure building blocks for Web 3.0 protocols
- ResNetLab: building resilient distributed systems
Project-Specific Repos
- IPFS
- libp2p
- IPLD
- Filecoin
Creating an Open Problem Statement
Open problem statements are to be created by anyone in the community as issues in this repo, and should be used to prompt and focus discussion and investigation. The purpose of an open problem statement is twofold:
-
Firstly, it should convince the reader that the problem you are presenting is worth working on.
-
Secondly, it should provide enough background and understanding of the problem that all design decisions and requirements are comprehensively described and motivated.
Feel free to deviate from the issue template if you prefer, or answer the following questions as succinctly as possible for an easy open problem statement.
While the template was made to support the RFP program, the open problem statements themselves are purely for the benefit of the community, and there is no obligation to make an RFP for each open problem.
Example Use Cases
Working on a public research problem
Start with the list of problems (logbook) in the issues of this repo. Post your thoughts on that issue and help develop potential solutions. If the project reaches the point of prototyping solutions, propose making a repo for it and copy over the relevant items.
Turning a problem into an RFP or bounty
-
Start by writing up the problem statement, which should include sections motivating the problem, describing and distinguishing the ideal solution from similar existing systems, defining terms and data structures, and listing constraints. The problem statement may be composed directly in Markdown using the template, or attached to an Open Problem issue as a publicly editable document.
-
Then create an issue for discussing the scale and importance of the problem so that a timeline and size for the bounty/grant can be determined. If, at any point in this process, the problem grows quite large, it's possible that the problem, discussion, and problem statement can move out of research and into its own repo. Otherwise, the problem statement and discussion of scale and importance should take place in one of the aforementioned two repositories.
-
Tag a Protocol Labs researcher in the discussion, and if funding can be allotted, the final RFP will be posted in research-RFPs with a link to the problem statement.