Google Summer Of Code 2018 ideas

This page lists the ideas to improve the neuropil library

  • implementation of bloom filter to identify forwarding for message subject over several hops

the idea is to implement a mixture of scalable, stable, aging(distance) and bitwise bloom filter to identify nodes interested in certain subjects. in the end messages can find their way through the distributed hastable by following the scent of the bloom filter. There are analogies to the ant colony based routing protocol.

skills: c, algorithmic thinking

  • review current used cryptographic routines and implement improvements

the current cryptographic routines are the standard libsodium routines. We would like to review the used algorithm, find and implement improvements, especially for the streaming of several messages. if possible, we would like to use ratchet algorithms, which are available in libsoium, but need to be implemented.

skills: c, crypto

  • implementation of group encryption

the current implementation only allows to send a message to one partner. The general ability for group encryptions is defined, but it needs to be implemented. In addition, sub-tree and sub-group encryption are possible, but need to be defined and implemented in example code.

skills: c, crypto

  • definition of behaviour tests for larger clusters of neuropil nodes

we need to have more distsinct and defined behaviour tests. The main problem is that we need to start several nodes in parallel and then capture if teh different communication channels all work in the way that we expect them to. To make it more realitic, you will have to setup several virtual machines each conatining several nodes and communication pattern. Test results need to be somehow aggregated across all started instances.

skills: c, behaviour tests, vm, python

  • review neuropil node view to display larger clusters of neuropil nodes

our current node view is good until it reaches 40 to 50 nodes in one view. but with neuropil it is possible to add several hundreds of nodes that should be displyed in a manner that captures most data. currently we use d3js library and corresponding blocks. So this will be a pure javascript programming tasks.

skills: js, json, d3js

  • define and implement advanced filter criteria for received token

we would like to filter received tokens as early as possible. one way of doing so is to annotate tokens with rules. only if all rules match, the corresponding party will receive the counterpart and can start to send messages. The task is to find a good mixture between XACML and libmacaroons to implement a distributed attribute based access control.

skills: c, XACML, crypto

Last modified 22 months ago Last modified on 01/18/18 19:00:06