ultralight-beam / specs Goto Github PK
View Code? Open in Web Editor NEWUltralight Beams MANET specification
Home Page: https://specs.ultralightbeam.io
License: Apache License 2.0
Ultralight Beams MANET specification
Home Page: https://specs.ultralightbeam.io
License: Apache License 2.0
Due to the routing in our MANET, we have very unreliable data consistency which could result in messages not reaching their destination.
We run MVDS over Ultralight beam in order to ensure message delivery.
ACKs are returned whenever node N
has done its duties which are either broadcasting the message to a given service, or sending it to node N + 1
.
Due to the fact that our MANET is supposed to handle various different scenarios we also have different routing requirements, for example in a chat context messages should be routed to a specific target as fast as possible. However when we are broadcasting ethereum transactions a flooding type system may be perfectly legitimate.
Allow for various routing methodologies that can messages can either be sent to a specific target, service provider or broadcasted within the network. This should also affect metering, messages that affect less nodes should cause less to be "metered".
Nodes are able to receive messages in various means, being sent them directly or receiving them through broadcasts. Nodes should also provide "static" identifiers in order for messages to be able to be forwarded to them directly.
Currently in the UB.swift the node ID is based on the on the Transport. This isn't optimal as there is no verifiability that a message really originally came from a certain node. Any malicious node could change who the sender was.
Nodes should hold private keys with which they sign to ensure that they really are the original sender of a message, this means no middle node can change the original sender.
Currently there is no version negotiation between clients. This means that clients may try communicating to incompatible clients and fail.
Design a Handshake that includes version negotiation so clients communicate correctly.
Currently, in the current CoreBluetooth Transport, we communicate all message over the same Characteristic. So, to differentiate between message types, we need additional processing (decoding headers) to determine if the received message is something we care about. Note that Characteristics are a Bluetooth specific concept.
More research is needed w.r.t. topics and messaging to ensure that we don't pollute the network.
Keep track of how much each node contributes and takes from the network based on local information. Similar to Bittorrent seed ratio.
Detect, store and display bandwidth UP and DOWN for each connected peer. This can for example be stored to an in-memory DB and printed to STDOUT at some interval.
If bandwidth can't be directly detected, this may be approximated with message count.
This issue is purely about the accounting aspect. Explicitly out of scope are:
Consequences such as:
are also out of scope, but can be natural follow up issues to this.
Misc:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.