Search results

  1. Who

    Logging in Factomd

    Factomd is able to produce a vast quantity of logs to aid in debugging, information, and filling your harddrive. Getting to them is a different matter, as there are multiple different loggers. standard out and standard error log You can already pipe the stdout/stderr of factomd to a file via OS...
  2. Who

    Explanation of Messages (IMsg)

    This one is overdue: detailing what exactly system messages ("IMsg") do. These are the missing links that tie the functionality of the channel diagrams I've posted together. Combining both of them should give you a pretty good overview of how the factomd node works internally. All IMsgs, from...
  3. Who

    Consensus Channel Diagram aka ValidatorLoop()

    I have to admit, this one did not turn out the way I wanted it to. The validator loop is the beating heart of the factomd node, responsible for keeping the consensus mechanism going along. It receives messages from the network, executes them, updates the state, updates the VMs, runs the VMs...
  4. Who

    Glossary

    There are a number of terms that I stumbled over when reading the code for the first time, so I want to build a glossary of terms and what they mean in relation to the code. If you have anything to add or correct please do. Disclaimer: I'm going to assume that you're already familiar with the...
  5. Who

    Miscellaneous Channel Diagrams

    In my search for all the Golang channels, I stumbled across several that were their own independent ecosystem and would just add clutter if included in the bigger diagrams. They're less interesting in terms of relevancy to the protocol but still an important function inside the code. This...
  6. Who

    Factomd P2P/Network flow diagram

    This was one of the areas I was struggling to understand for quite a while and it wasn't until I was 90% done with this diagram that it finally 'clicked' what the difference between P2P Peer, Peer, and SimPeer is and where to separate program from network messages. I'll try my best to relay...
  7. Who

    Factomd Overview

    One of the major goals of me learning the core codebase is leaving behind as much documentation of my process as I can. These documents, blogs, graphs, whatever are meant to help the next person to come along. The first diagram I made for this endeavor is a very broad overview of the elements...
  8. Who

    factomd major process flow

    First of all, I'd like to apologize to everyone that has to look at this enormous, messy diagram. Now that that's out of the way, it's time for my second publication: an attempt at a broad look at the processes running in the factomd node. It's the result of several days of reading the source...