[squeak-dev] ESqueak planning notes
rabbit
rabbit at callistohouse.org
Sun Oct 16 21:59:46 UTC 2022
Alright it seems ParrotTalk ended up with message traffic for a 2-party meetup, at a BridgeService. BridgeServices are negotiated between Alice and Bob and ends up with the promise in Alice, and ultimately Carol, the promise #becomes: a ReplicatedParallelSession holding 3 established, double-encrypted SecureSessions through 3 or more (Bridge; I Concentrator traffic collector chains) third-parties.
This leads to thoughts on a system first host bootstrap script.
1) Installer ss project: ‘Cryptography’; install: ‘ESqueak.alpha’.
2) click update everything in Bootsatrap
- Which runs ESqueak startUpDefaultHost
- create ESqueak which has a Sister installed. The Sister sees no other Sisters and launches additional squeak headless programs, up to coreSize. Each newbie gets script instructions to
- downloads ESqueak
- and starts up it’s own defaultHost.
- Noob connects to ~/tribe/ESqueak/repository/sisters shows the first/several Sisters with ports.
- Start state sync replication protocol.
- If 3 sisters, shutdown local Sister and connect to the other 3 remotes.
- Ask a sister for any tri-services. Some scripts instructs the ESqueak to just register a new BridgeService with a real remote sister’z distribution service..
- as more truly remote BridgeServices come online, detect with UDP.
- on the event, migrate ‘local-silicon’ bridges to be off-world…
- cause connection failure
- reconnection to a new channel bridge.
- as a client requests a session, double-encrypt over connected BridgeServices. Wrap this ChannelSession in ReplicationSession, absence of other replicas, ReplSession spawns additional ChannelSessions. Bottom-up connection establishment.
- Mesh.
- Publish triServices in NamingService..
- Play!
—
Have a good one; keep it, light.
Kindly, langohr . .. … ‘…^,^ 🐇🐇🐇
Sent from Callisto House Mobile - Europa
:: decentralized mobile homeless solutions ::
> On Oct 16, 2022, at 15:26, rabbit <rabbit at callistohouse.org> wrote:
>
>
> ———- ASN1Tags: ParrotTalk & Remote Promises ———-
> * includes message support for bridge selection, if requested.
> * all msgs changing numericTags and using a Context classTag of 2r11. Updated the stateMaps.
> * Were able to fit all ASN1Types in 32 bit values: 0-31.
> * ASN1Tag has:
> - classTag := 2r11.
> - is Constructed := 0.
> - numericTag: headerType <?>.
> fullTag := (((classTag bitAnd: 3) << 6)
> bitOr: ((isConstructed bitAnd: 1) << 5))
> bitOr: (numericTag bitAnd: 2r11111).
>
> Layer 5: Parrot – session v3.6, v3.7, v3.8
>
> Protocol negotiation
> <0> ProtocolOffered
> <1> ProtocolAccepted
>
> Common
> <2> RawData
> <3> Encrypted
> <4> Encoded
> <5> MAC
> <6> DuplicateConnection
> <7> NotMe
>
> —- ParrotTalk v3.6 —-
> <8> IWant
> <9> IAm
> <10> GiveInfo
> <11> ReplyInfo
> <12> Go
> <13> GoToo
>
> —- ParrotTalk v3.7 —-
> <14> Hello_v3_7
> <15> Response_v3_7
> <16> Signature_v3_7
>
> —- ParrotTalk v3.8 —-
> <17> Hello_v3_8
> <18> Response_v3_8
> <19> Signature_v3_8
> <20> BridgeProvideFor_v3_8
> <21> BridgeAcceptFrom_v3_8
>
> Layer 6: Remote Promises
> 22-26 (EventualMessages)
>
> <22> DeliverMessageOp
> <23> DeliverOnlyMessageOp
> <24> GCAnswerOp
> <25> GCExportOp
> <26> ShutdownOp
>
> 27-31 (EventualDesc)
> - wireRefDescriptions
> … … … … …
>
>
> ———- v3.8 Message Details ———-
> —- ParrotTalk v3.8 —-
> <18> Hello_v3_8
> - UserName
> - UserID
> - ServiceName
> - VatId
> - Domain
> - Public key
> - CryptoProtocols
> - DataEncoders
> - DiffieHellmanParamenter
> - BridgeSuggestions
> <19> Response_v3_8
> - UserName
> - UserID
> - ServiceName
> - VatId
> - Domain
> - Public key
> - SelectedCryptoProtocol
> - SelectedDataEncoder
> - DiffieHellmanParamenter
> - Signature
> - BridgeSelections
> <20> Signature_v3_8
> - Signature
> - BridgeNonces
> <21> BridgeProvideFor_v3_8
> - nonce
> <22> BridgeAcceptFrom_v3_8
> - nonce
>
> —
> Have a good one; keep it, light.
> Kindly, langohr . .. … ‘…^,^ 🐇🐇🐇
>
> Sent from Callisto House Mobile - Europa
> :: decentralized mobile homeless solutions ::
>
>>> On Oct 16, 2022, at 13:44, rabbit <rabbit at callistohouse.org> wrote:
>>>
>> ———- Focus ———-
>>
>> To maintain a good focus, once remote promises are #green, I’ll want to stay with networking and make my trinity of replicated Services each Service instance with a trinity replicated session to three bridge sessions. This is my grande trinity-of-trinities plan for fault-tolerant communications. Wires are plentiful!
>>
>> Have a user manager where v3.8 will lookup a Hello msg’z userID with a default no-op TSUserBroker. Later install the ENamingService.
>>
>> In Hello, Alice supplies suggested bridges, to limit open FDs.
>>
>> In Response msg the contacted, Bob, supplies 3 selected bridge services.
>>
>> Contactee, Alice, who initiated with Hello, receives Response. Alice generates and provides a bridgeNonce for each bridge, registers it’s #acceptFrom: nonce with each bridge, and sends the nonces back in the Signature final message, same order.
>>
>> Bob received Signature. If sig checks out, Bob send #provideFor:nonce to each apropos bridge, to rendezvous a triple replicated session. Both Alice and Bob controls the number of bridge socket FD used.
>>
>> ParrotTalk has replicated Sessions (tripleSession).
>> RemotePromises have replicated Services (tripleService).
>>
>> A tripleSession has 3 FDs open. A tripleService May reuse Bridge connections, thus though connected to service instances on 3 different machines, reusing existing bridges may mean still only 3 FDs open.
>>
>> With Sessions, Bob chooses bridges, Alice chooses nonces. Likewise, with replicated Services, Service.1 offers pair of additional replica Services, each supplying bridges. Establish tripleService, fully online...
>>
>> <image0.jpeg>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20221016/c6b87a42/attachment.html>
More information about the Squeak-dev
mailing list
|