Byzantium Live Distro Service Announce
From HacDC Wiki
Description
Share services running on a network with clients and other supernodes.
Each supernode (mesh node) maintains a database of all of the services and web apps it's running. That database is used to populate the /index.php page of each node. The trick lies in telling the other mesh nodes what you happen to be running and what IP address it is. This is where being able to announce what services you run to other mesh nodes will come into play.
This is simplified somewhat by the fact that the mesh nodes' network IP addresses are all 192.168/16.
Suggestions
Contents
- ip address (ipv4 and/or ipv6)
- protocol service is provided on
- (based on name given in /etc/services maybe)
- in services.sqlite, both tables have a field 'name' that contains the name of the service.
- port number
- human readable name of the service or service instance
- human readable description of arbitrary (as much as possible) size and format
- limit it to microblog post-size (140 characters)?
- Put a timeout on each entry to force neighboring mesh nodes to re-poll the neighbors they know about to see if a service has been turned off by that node's admin?
Method
- HTTP(S)
- Use a RESTful API to make this information accessible?
- https://miranda-zero.byzantium.mesh/services
- socket
- avahi?
Format
- xml
<?xml version="1.0" encoding="<encoding>" ?> <services> <service ip4="" ip6="" protocol="" port="" hr-name="" ttl="300"> Description </service> </services>
- delimited list
;;;<ipv4addr>;<ipv6addr>;<protocol>;<port number>;<human readable name>;<cache TTL in seconds>;<description>