63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
|
node should be able to store and retrieve data, send and receive messages, perform computations
|
||
|
|
||
|
what is an appropriate runtime for this?
|
||
|
erlang?
|
||
|
|
||
|
nodejs?
|
||
|
|
||
|
custom - rust, c
|
||
|
|
||
|
bash,
|
||
|
php,
|
||
|
lua
|
||
|
|
||
|
what are the main features we want/need?
|
||
|
|
||
|
key value storage
|
||
|
socket listening
|
||
|
message handling
|
||
|
storage management
|
||
|
policy declarations/implementations
|
||
|
communications layer
|
||
|
confidence levels, derived confidence levels
|
||
|
|
||
|
possible architecture
|
||
|
---
|
||
|
|
||
|
tinc vpn
|
||
|
each node has a private key
|
||
|
network must seed with some out-of-band public key exchanges
|
||
|
once the network is seeded, participating nodes can propagate new public keys to be onboarded
|
||
|
simple daemon should run on each node
|
||
|
if it has a static public IP, it advertises it
|
||
|
If it has a dns record, it may advertise it
|
||
|
Peers may discover it's IP through STUN/TURN type arrangement - tinc may be handling that
|
||
|
|
||
|
What if we use HTTP for the protocol? So e.g. curl can be used for manual testing.
|
||
|
|
||
|
nodejs with leveldb could be a reasonable way to start a prototype
|
||
|
maybe try to use typescript for good measure
|
||
|
|
||
|
rust or erlang do seem stronger than nodejs
|
||
|
|
||
|
in any case we probably want to run our node and its dependencies in containers
|
||
|
do we want to use kubernetes? helm?
|
||
|
|
||
|
tinc could be good for facilitating operations among the dev team
|
||
|
|
||
|
node maintains a set of functions and the streams that feed them
|
||
|
executes the functions that it's configured to execute
|
||
|
within the contexts they're configured to use
|
||
|
perhaps creating new deltas representing the results of ingesting some deltas
|
||
|
|
||
|
so we want to be able to ask a node:
|
||
|
what have you seen?
|
||
|
What have you accepted/how confident are you about xyz
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|