SAFE "Account Transfer" and handling "churn"


#1

We have started to get smaller units of work designed and using this simplified mechanism as part of the recent drive to working remotely etc. This is the sort of idea https://github.com/dirvine/MaidSafe-Vault/blob/MAID-177-document-account-transfer-desig/docs/account_transfer.md So any comments welcomed, its in github so we can see any changes.


Breaking down app development into human readable logic
#2

Add in a mechanism to prune this list in a similar fashion to that which will be applied in routing firewall.


#3

Yes the firewall here is a trick we use a lot. It is really a replay attack prevention. So we keep message id’s that have come in the last short period. It allows us to swarm messages in certain situations, like network device failure or at the end of a search. If we detect issues we swarm messages around these issues. This means managing duplicates which also prevents replay attacks etc. If a replay attack is carried out much later the actions has already been applied down the line, so the attack is killed off.

It’s a handy feature being able to swarm messages, lots of edge cases solved in that way.


#4

So this way the state knowledge request messages are always ahead of any attack messages.?


#5

Absolutely :smiley: It is a rabbit hole to go down, but it’s worth it. Welcome down here in the depths, we need many more to see all this.


#6

I should add the attacks have to be last when messages are signed (lots are). Also the message has to come from a connected cryptographically secured group, so an attacker can grab a message to delay it (cannot alter it though as it’s encrypted), but during the delay we swarm around them so it invalidates such activity.


#7

How is an attack not being able to delay a swarm of messages?

Because of many nodes?


#8

We select a new route for any delayed messages, so go around such an attacking node or router etc. Each node has 2 seconds to send the message on or be routed around. As its XOR DHT then a swarm of messages quickly converges again and ensures traffic efficiency.


#9

So study routing firewall if I want a shot at trying this.

similar fashion to routing firewall


#10

The OnMessage::Action routing::node_change(Record); will return a value that triggers an action (such as delete, send to one/many, etc. or ignore) on adding to this map.

so if delay is occurring send to many, if one went fine - move on;

It shoud be noted that account transfers could happen at any time for any node and any persona.

what is any time? consistently these state messages are sent; I am assuming this is any time

-just got new device for development -setting up asnow ubuntu life


#11

This a a reaction to a churn event so this is what time means here. We do not use time in the network :slight_smile: ITs weird but essential from my perspective. So we use timers for local issues perhaps but never transmit or depend on time for any source.


#12

Reading this;

Windows 7, gone. Ubuntu up and running - should I just go straight to getting Qt up; or MaidSafe build first?

Code editors for Ubuntu?

super noob questions :x:

EDIT BY @happybeing : This post spawned a new topic: Trying out MaidSafe development environment (e.g. with Qt framework)