Proposing virtual nodes for people without websites
We had a discussion yesterday with a local community hub and during that time they made us realise that we are going to come across situations where an organisation doesn’t have a website to act as their node on the network but still wishes to use, say, the broadcast service. In theory, any static point on the Internet can become a form of node on the network, with limited functionality.
To tackle the problem, the idea proposed is that of a virtual node. simply put: we could create a thin layer that acts like a bunch of nodes on the network with a particular service but is an interface to specific functionality provided by social media accounts. It is a bit more complicated, as displaying the information has to adhere to the terms of service (if there are any) associated with the social media company.
It’s possible to be even more general and — given rules — could convert any form of structured text or web API into service information — so you could set it up enabling your freely hosted site to have some way of broadcasting information on the network, though in a limited capacity, through the virtual node.
Proposal Notice: this functionality isn’t yet available; it is an idea that we are going to work through in the future.Posted November 29, 2016 9:57 am by Charlie Fyvie-Gauld
SpringNet v0.3.0 Release – Protocol update and bug fixes
This slightly delayed 3-week-cycle release is pretty boring and brings in the protocol changes that enables multiple responses to be combined effectively into a stream of responses, with a ‘service/multi’ header and an End of Transmission response code to complete the stream. This is technically a cleaner approach compared to using delimiters as it locks the size of a chunk to a size instead of a special sequence of characters used to end a response, thus allowing any sequence of characters to be in the chunk without having to escape them. It also makes the stream data format agnostic. This protocol update makes breaking changes to previous version of the plugin.
Proposing ‘network bands’ for grouping related organisations
With the potential expansion of a regional network, there may be a large variety of groups, each using the network for different reasons; we’ll quickly end up with a lot of unrelated information at any given point, which is essentially noise and something that needs to be avoided. To tackle this problem, there comes a potential design solution that can be built into the underlying protocol — organisations can register a band with the regional network for others to join, or join a band if it already exists. This band can then be used in the URI to talk to a specific spectrum of the regional network (for example: spring://esusx.uk:carers) which will limit the information to that band thus filtering the noise and presenting a clearer, more relevant image. By building it into the protocol and URI specification, as opposed to running it as a network service, we are creating scopes within the topology of the network.
Proposal Notice: this functionality isn’t yet available; it is an idea that we are going to work through in the future.Posted October 24, 2016 12:32 pm by Charlie Fyvie-Gauld
WordPress Native Node
As the software has progressed for the web based node, it seems quite possible to have a version of the node running purely as a native WordPress plugin. This differs from the current WordPress plugin which allows you to connect to and manage your node running on a separate domain or subdomain. With the aim to make Spring as accessible as possible on a technical level, having a plugin like this really builds toward that aim by making the installation of the software and connecting to the network even easier! As a bonus it removes some load off servers because an external request is using the WordPress installation directly as the gateway, instead of bouncing off to another server before accessing the internal network.
With that in mind, this week we’ll be researching how to go about strapping a Spring network node directly into the back of a WordPress powered site and hopefully have some alpha build plugin in the next few of weeks.
It is looking very possible to strap the node software into the back of WordPress!Posted September 19, 2016 11:03 am by Charlie Fyvie-Gauld
Web of Trust, Public Keys and Certificates
The latest version of the underlying node software has functionality for managing private and public keys and certificates for the nodes on the network.
This technology provides many useful things — including straight forward data encryption — but for this post we’ll look at trust models. Since the network is designed to avoid reliance on any one central point for it to continue working, we are harnessing tried-and-tested public key cryptography; more specifically the GnuPG implementation of the OpenPGP standard and the web-of-trust model which allows for a distributed trust network. Each node possesses a certificate that can be signed by other nodes on the network. This certificate provides the means of verifiable identification; the more other organisations on the network verify your node as belonging to your organisation and sign your nodes certificate the more weight that certificate holds as a means of identification on the network. In addition, since this is an open platform, it also allows the flexibility for groups of organisations to set up their own certificate authority within the network for their relevant nodes. For example, use of certain services could be restricted to only nodes that have a certificate with a particular signature.
The benefit of using the GnuPG technology is that the software it is freely available for almost all platforms. This means, if you wish, you can manage all your certificate signing completely offline.Posted September 9, 2016 7:42 am by Charlie Fyvie-Gauld
Out with old prototype, in with the new specification
After a lot of contemplation on the design of the prototype’s network communication protocol — and a lot of needless hassle in continued development caused by it’s original design — it was decided to shift away from a binary protocol and embrace what most Internet services have been based on by providing a text based protocol. This is a good example of why prototypes are built — to see what works and what doesn’t. As the overall design progressed, it was becoming very clear that a binary protocol was the wrong direction and now it’s been rectified. While the network behaviour is the same, the mode of communication feels a lot cleaner and more natural.
Now we’re moving out of this prototyping stage and into a development that is much closer to the actual service. The node software has been cleaned up, tested extensively and now handles the new protocol. This also means the old specification has been scrapped and the new protocol specification working draft is being worked on and can be seen at our public repositories.Posted June 23, 2016 8:00 pm by Charlie Fyvie-Gauld