dotnet-foundation / projects

This repository is used for onboarding new projects
113 stars 31 forks source link

Hi there! I'd like to present to you BrightChain #164

Closed JessicaMulein closed 2 years ago

JessicaMulein commented 3 years ago

1.   General Information

Project Name: The Revolution Network / BrightChain

License: Originally GPLv3, but code has been changed to Apache to better fit with dotnet foundation. No other contributors added code before the switch.

Contributor (Company, Organization or individual name(s)): Myself, Jessica Mulein as an individual apart from my employer Microsoft. This project predates my employment though it has undergone many years of thoughts and names.

I now have Greg Greer helping with Devops.

Existing OSS Project? (Yes/No): Yes

Source Code URL: https://github.com/The-Revolution-Network/BrightChain also https://github.com/BrightChain/BrightChain

Project Homepage URL (if different): https://apidocs.therevolution.network/articles/README.html

Project Transfer Signatories: Jessica Mulein jessica@mulein.com jmulein@microsoft.com Full legal name and email address required of the individual(s) with the authority to transfer or contribute the project to the .NET Foundation. Note that if you'd prefer not to include this in the public application, it can be submitted via e-mail to contact@dotnetfoundation.org (referencing this issue number).

2.   Description

Please provide a brief statement about your project in terms that are understandable to the target consumer of the library or project, i.e. an elevator pitch for the project:

BrightChain is the backbone of The Revolution Network.

It is both the storage and message passing system of the entire network. It will be designed to house every byte of data for the entire world one day. The goal is to store Everything in BrightChain.

It has lower overhead than blockchain and traditional P2P delivery.

It's core is based on The Owner-Free File System principle, which uses XORs with random data to whiten/randomize/anonymize all data and alleviate legal/ethical burdens of storing information. All blocks are both stored and verifiable with their hash as the key. Blocks are to be widely replicated but cached into memory in algorithmically strategic locations based on consumption.

On top of all this is now something called ChainLinq that is a linq-native serialization mechanism to easily create blockstore based data object persistence. Soon a dApp system will be added on top.

its more of a brightnet blockstore and an ethos... what it needs still is some math and a little more vision in the areas I'm not seeing. The whole goal is to reward people who contribute good, frequently accessed content, the storage for it, etc. Everything is tracked in terms of a unit called the Joule Attempting to be somewhat synonymous with the real work unit. There should ideally be a direct maths. Ultimately bad users are just bad blocks and will get flushed and expired out while good stuff will get extended on forever. They will have to work too hard for their network access/wasteful contribution/access and will leave. It is not the necessity of this chain to store every bit forever. The chain is very transparent and ultimately when things do expire out if not needed by the system, others can easily back them up. Some blocks of course are immediately set immutable with a DateTime.MaxValue and don't need to be renewed.

In the future hope to provide a low-overhead digital contract / dApp ecosystem based on the CIL/CLR, without the computational overhead of traditional blockchain, making use of the efficiencies of Brightnet Blockstores and still benefitting from the power of blockchain like properties.

Please provide a 1 sentence (<140 character) summary of your project to help users when searching the .NET Foundation projects

Highly Available, Free Storage, Authentication, Voting and Anonymity all while mathematically and ethically generating and enforcing good behavior and decreased waste in the network.

3.   Project Governance

Please complete this section about who will be maintaining the open source project and how it will run. Project Lead: Open. I'd like to take a second chair- once I convey the vision to the team, I'd love to get others helping. I'm happy to be the lead, but others may be able to do that more effectively. I'm disabled as well as full time employed at microsoft and trying to keep that my priority. Of course if this was taken internal, it might solve all problems.

(Who is the primary contact point for the community and the .NET Foundation when discussing governance of the project.)

Name: Jessica Mulein Email: jessica@mulein.com GitHub Profile URL: https://github.com/JessicaMulein

Committers:

Right now the project is really just me.

Which individuals have commit / write access to the repository, what is their GitHub ID and who is their employer (if contributions are on behalf of an employer)

There are people I have given access to in the past who have volunteered, but ultimately nothing materialized.

@abb128 abb128
@AgentEnder Craigory V Coppola @Shadowhenge Jamie Shea @sputier Sébastien Putier

their access has just been removed.

@ggeer8 Greg Greer is Active for Devops.

Governance Model:

Please describe how new code changes are proposed to the project, how those changes are reviewed and how a decision is made to accept proposed changes. Also describe the process for identifying and appointing new committers.

The process would become agile. Right now it is just me trying to whack out code. It is not (yet) TDD, but I have a solid test base and am in the process of trying to catch the testing up to the code now that the architecture/base has solidified. Pull requests and code reviews would be done. There are no other team members at the moment, but ideally a couple of reviewers would be required.

CLA

If already an OSS project, was a Contribution License Agreement in place for contributions accepted? How does the project check who has signed one?

update: 8/23/21 CLA-bot on github has been implemented and a clabot-config repo has been created.

No contributions besides mine have been taken. update: there are now some devops IaC contributions from Greg Greer. No CLA has been signed by him, but he has resigned the project.

CLA Notification Alias Provide an email address that will receive CLA related notifications from the .NET Foundation CLA automation

jessica@mulein.com

Assignment Model. Under the .NET Foundation assignment model, project ownership and other intellectual property is assigned to the .NET Foundation and the .NET Foundation agrees to grantback a license to the contributor(s).

Ok.

Contribution Model. Under the .NET Foundation contribution model, a project retains ownership of the project, but grants the .NET Foundation a broad license to the project’s code and other intellectual property. The project also confirms that the project’s submissions to .NET Foundation are its own original work (there are also instructions for any third party materials that might be included).

Ok.

4.   Repository Layout

The .NET Foundation host guidance for new projects and details on recommended structure here: https://github.com/dotnet/home/tree/master/guidance

Note that the open source repository should be the master where changes are made by the core development team using the same PR process that is used for non-committer contributions.

Please define below any changes you would want to make to your repositories as part of the process of joining the .NET Foundation

5. Eligibility Criteria

Please complete the following for your project

6.   PR Plan

Please summarize the public relations plan for the announcement when joining the foundation (and releasing as open source if appropriate). What is the main story we wish to promote, through what channels, what issues should we be aware of?  For significant news events then please also work with your .NET Foundation contact to ensure a full PR plan is developed.

The goal is to promote decreased waste in the blockchain and storage, goodwill and contributory behavior in the network, rewarding creators of highly accessed content. Every server and computer everywhere has tons of unused space that could be contributed towards hosting content. In return participants receive essentially unlimited storage- as their behavior and contributions allow.

7.   Infrastructure Requirements

Please describe any infrastructure requirements for the project. For example, how will build servers be operated? Any web hosting or service hosting requirements? Do we need to set up SSL certificates or provide Authenticode Code Signing arrangement for releases?

Everything right now is offline, eventually it will all be self-hosted by participating nodes, but at least a couple initial nodes will need to be spun up with large storage and memory caches. SSL certificates and code signing will need to be set up too.

I hope to make use of WebAssembly for light nodes, but full nodes will need to be disk-backed. BrightChain is inherently disk heavy on the server side. Initially the validation and dApp execution nodes are going to be heavy for us, but as we get more contributors and the validations (themselves a low level dApp piece) and code executions start happening on non-local nodes.

8.   Additional Notes

Please provide any additional information required or use this area for notes during the onboarding process. If this open source project has similarities with any other projects in this space then please detail them and why this project is different. If there are any potential issues that you feel the project might need help with early on then also state them here and discuss with your .NET Foundation Contact.

Autogenerated documentation is also now available https://the-revolution-network.github.io/BrightChain/api/index.html based off doc blocks which are mostly populated.

Last updated: 7/30

JessicaMulein commented 3 years ago

If my project is too new/small, please let me know and I'll save you the time.

sbwalker commented 3 years ago

@JessicaMulein the Project Committee reviews new applications on a monthly basis. Our next meeting is on July 8. We will have feedback for your application shortly thereafter.

JessicaMulein commented 3 years ago

Thanks for the heads up on the timeframe! How do you keep a geek in suspense? I'll tell you the 8th!

JessicaMulein commented 3 years ago
JessicaMulein commented 3 years ago

I've made some minor updates to the above as the project has evolved.

JessicaMulein commented 3 years ago

the BrightChain "One-Pager" is about 3 pages at the moment, but pending some slimming down is about as concise a document as I've put together.

https://apertureimagingcom-my.sharepoint.com/:w:/g/personal/jessica_mulein_com/EYoQU8qG_xlGpD0_A-mxhvoBC7Jz2l-jGbezPKmqQFx4AA?e=ie5hPZ

JessicaMulein commented 3 years ago

Project now has a CLA-bot and I've written a longer paper as well.

JessicaMulein commented 2 years ago

Could you clarify my standing and what I should be doing with my trademark assets

sbwalker commented 2 years ago

The Project Committee Charter https://github.com/dotnet-foundation/projects explains the various stages for projects which are associated to the Foundation. When the Committee reviewed your project it was determined that it meets the eligibility criteria ( based on the license change from GPL to Apache 2.0 ) and has a lot of potential. However it does not yet have much adoption or community involvement. In these situations we generally promote the project to the Seed level and then review again the next quarter. At the Seed level, projects do not go through the onboarding process for Member projects and they are also not eligible for many of the Foundation services. I hope this answers your question.

JessicaMulein commented 2 years ago

Ok. I have a commercial route I'm taking it. I need resources much sooner I was not aware how many months it would take to learn anything at all. Thank you for your consideration