Successful Factomize Core Development Grant Update (Grant Round 1, 2019)

Was Factomize Core Development, Grant Round 1, 2019 Successful?

  • 0

    Votes: 0 0.0%
  • 1

    Votes: 0 0.0%
  • 2

    Votes: 0 0.0%
  • 3

    Votes: 0 0.0%
  • 4

    Votes: 0 0.0%
  • 5

    Votes: 0 0.0%
  • 6

    Votes: 0 0.0%
  • 7

    Votes: 0 0.0%
  • 8

    Votes: 0 0.0%

Have not voted

Authority Nodes BI Foundation BI Foundation Blockrock Mining Blockrock Mining BlockVenture Consensus Networks Consensus Networks DBGrow DBGrow De Facto De Facto Factom Inc. Factom Inc. Factomatic Factomatic HashnStore HashnStore HashQuark Kompendium Kompendium Prestige IT Prestige IT

  • Total voters
    17
  • Poll closed .

David Chapman

Factomize
Background

Factomize applied for a core development grant for the first grant round of 2019 where our lead developer "Who" would work on the Core codebase full time. This grant was approved by the community and Who began work immediately.

Original grant proposal

We want to thank @Brian Deery and all those at Factom Inc who we've found to be very supportive during this process thus far.

Deliverables

We promised the following in our grant proposal:

- Have a full time Core developer start work immediately
- Further decentralize development
- Improve Core code and documentation
- Share obtained knowledge
- Utilize the FIP when it comes online, if viable

Work Completed

Blog Posts

- Factomize Core Dev Update 1
- Factomize Core Dev Update 2
- Factomize Core Dev Update 3
- Factom Protocol P2P: A TCP Gossip Network
- Factomize Core Dev Update #5
- Factom for Developers
- Anatomy of Factom's Addresses
- Factom EDA - A Vision of the Future

Documentation

- Glossary
- Factomd Overview
- Factomd Major Process Flow
- Factomd P2P / Network Flow Diagram
- Consensus Channel Diagram aka ValidatorLoop()
- Miscellaneous Channel Diagrams
- Explanation of Messages
- Logging in factomd

Pull Requests, FIPs, Bugs, and Issues

- Crossreplayfilter Garbage Collection Termination fix
- Legibility Improvements Batch 1
- Critical bug fix (more info soon)
- Close TCP connection
- Critical bug fix - (more info soon)
- Pprof is exposed by default via control panel port
- Use peers.json file
- Docker dev environment misconfigured
- Found another major bug and provided a simple fix but also detailed a major overhaul of that portion of the code.
- Discovery.GetOutgoingPeers() algorithm doesn't work at all
- Configurable p2p incoming and outgoing flags
- Factom P2P 2.0 FIP
- Fix loading of custom cert paths
- Runtime log doesn't respect its own enabled setting

General

- Took part in extensive consensus mechanism discussion with other developers.
- Continues to provide support to other developers on Discord.
- Supported an exchange looking to list FCT.
- Has joined the Core Committee.
 
Last edited:

David Chapman

Factomize
March 15th

"Who" has been very busy these last two weeks. He finished up his planned documentation and we coordinated with Factom Inc (who continue to be great to work with - shoutout to @Brian Deery ) to begin tackling specific tasks, the first of which you can see a PR for below. Who also found another critical bug which we'll provide more information regarding in the future. The items below have also been edited into the first post of this thread.

Blog Posts

- Factomize Core Dev Update 3

Documentation

- Explanation of Messages

Pull Requests

- Close TCP connection
- Critical bug fix - (more info soon)

General

- Took part in extensive consensus mechanism discussion with other developers.
- Continues to provide support to other developers on Discord.
 
Last edited:

David Chapman

Factomize
April 1st

Who began work on a small project where the scope has increased substantially as, to do it right, it requires that other parts first be put in place. The project has turned into a reworking of the underlying p2p protocol. We anticipate this work taking 4-8 weeks.

The work from the last two weeks, showcased below, has been merged into the first post of this thread.

Blog Posts

- Factom Protocol P2P: A TCP Gossip Network

Documentation

- Logging in factomd

Pull Requests, Bugs, and Issues

- Pprof is exposed by default via control panel port
- Use peers.json file
- Docker dev environment misconfigured
- Found another major bug and provided a simple fix but also detailed a major overhaul of that portion of the code.

General

- Continues to provide support to other developers on Discord.
 
Last edited:

David Chapman

Factomize
Last edited:

David Chapman

Factomize
May 1st

Who continues to work on the p2p code. I am pleased to say that the standalone library he is writing has now been integrated with factomd, is connected to the testnet, and successfully syncs, which is a great sign. Who is now focusing on fine tuning the code.

The blog post below has been merged into the first post.

Blog Posts

Factom for Developers

General

- Continues to provide support to other developers on Discord.
- Is now a member of the Core Committee.
 

David Chapman

Factomize
May 15th

Who continues to work on P2P 2.0. As promised in our grant, we would utilize the FIP system when viable and Who wrote the first one for P2P 2.0 linked below. The new system is now capable of running multiple protocols at the same time, is able to connect to existing nodes, and is using a new slimmed down network format that reduces overhead (reducing the average parcel by about 25% according to early benchmarks [disclaimer: during syncing, more benchmarks to follow]). Who estimates that he is about 90% done with implementing features and is working on documentation, commenting, and testing to iron out the worst of the bugs.

The info below has been merged into the first post.

Pull Requests, FIPs, Bugs, and Issues

- Factom P2P 2.0 FIP

Blog Posts

- Anatomy of Factom's Addresses
 

David Chapman

Factomize
June 1st

This is our last update for this grant which we now deem completed. I will conduct a summary and self score and put the grant up for determination soon.

Who is putting finishing touches on the p2p library. So far everything is going well. Four ANOs have been running a test node for a week and have reported 15-20% lower CPU usage despite handling more connections (the old code had a bug somewhere where nodes joining the testnet only got around 20 connections, whereas the new p2p code had 32). The full effects of running the new protocol won't be visible until the majority of the network is running the new code. Who is still planning on adding a replay filter to the p2p package so that duplicate messages don't travel all the way to core, but apart from that all his short-term goals have been integrated. Once that's in and the FIP is live, the p2p library will be ready for review by other developers.

The info below has been merged into the first post.

Pull Requests, FIPs, Bugs, and Issues

- Fix loading of custom cert paths
- Runtime log doesn't respect its own enabled setting

Blog Posts

- Factom EDA - A Vision of the Future
 

David Chapman

Factomize
This grant is now complete. Per Document 106 - Grant Success Determination Process I will self-score and allow others to review the grant prior to a poll being created where success or failure can be determined.

Original Grant Proposal

Grant Summary

Factomize was awarded a grant to have its Lead Developer, "Who" work on Core.

We promised the following in our grant proposal:

- Have a full time Core developer start work immediately
- Further decentralize development
- Improve Core code and documentation
- Share obtained knowledge
- Utilize the FIP when it comes online, if viable

Performance

The first post in this thread showcases Who's accomplishments. We made no promises regarding actual improvements to the code he would make as he was still learning factomd. To even my astonishment (and I've worked with Who for around 15 years) Who made massive contributions to the code. He found and fixed minor and critical bugs and has just about wrapped up a major improvement to the codebase. Additionally, all promises were met including some fantastic documentation and blog posts.

Scoring

The following scoring rubrik will be used for this grant per Doc 106:
Code:
Exceptional (9.0 - 10.0) - Successful
Overachieved (7.0 - 8.9) - Successful
Achieved (5.0 - 6.9) - Successful
Underachieved (2.0 - 4.9) - Failure
Total Failure (0.0 - 1.9) - Failure
My Score

I believe Who's work this round falls in the exceptional category. It's really hard for me to articulate how proud I am of him and his work but maybe I can quantify it as Factomize will be self-scoring 9-10 - Exceptional.

We welcome additional reviews over the next 72 hours at which point we'll add the poll for final determination.
 

David Chapman

Factomize
Per Document 106 - Grant Success Determination Process this grant may now be voted on to determine success or failure.

Factomize's summary and self-score can be seen in the post above this one which includes a link to the original grant.

The following scoring rubrik will be used for this grant per Doc 106:
Exceptional (9.0 - 10.0) - Successful
Overachieved (7.0 - 8.9) - Successful
Achieved (5.0 - 6.9) - Successful
Underachieved (2.0 - 4.9) - Failure
Total Failure (0.0 - 1.9) - Failure
This poll will be open for five days.
 

Michael Lam

Core Committee
Core Developer
We will abstain from the vote since we were not present as an ANO through most of grant period. However, I can say it appears the grant was quite successful from my readings of the history.
 
Top