The rest of the code works the same either way. If it's an object, the receiver's package has validators and accessors. If it's a data packet, the receiver has a library of validation functions and just accesses the data direcly. Infobots have a set of peers. Discovery is harder, but I like it better.
Hard problems are more fun, anyway.
Set up a single open registrar for the geckobot network. Distribute its data among mirrors regularly. Hardcode the root cache into geckobot. Geckobots pull a copy of the peer database at install time, and they periodically update against it. This is my favorite choice so far.