telehash / telehash-objc Goto Github PK
View Code? Open in Web Editor NEWTelehash in Objective-C for iOS and OSX
License: MIT License
Telehash in Objective-C for iOS and OSX
License: MIT License
Relay peer channels timeout with inactivity. If an active path stops responding, we should fail back to the last valid relay (and re establish a peer channel if needed)
All channels should timeout on inbound activity unless configured to not do so.
We need to timeout all open lines based off inbound inactivity. We also need to attempt to re-open lines before failing
Paths that have not recently received any data back should be timed out and removed
btle transport for iOS/osx
Implement bridging within the lib
Bridge path objects should not be assigned directly from their relay peer, they should be re-created and have the existing socket assigned. This will allow us to specify an isBridge property to the path, which is within the scope of the peer that's using it (not the relay)
The 2a cipher set has a new proposed open scheme
Socket.io http transport for when TCP is the only option
2 clients online, one tries to open a line to the other via thSwitch:openLine:identity...]
But nothing actually happens (as far as instant response). It looks like the seed IS actually sending a response immediately.
APP:
2014-02-06 15:03:07.957 Rival Messenger[54233:303] Debug - RMAddFriendController :: lookup: -- Opening a line to 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
2014-02-06 15:03:07.965 Rival Messenger[54233:303] MethodCall - RMController :: sharedRMController
2014-02-06 15:03:07.966 Rival Messenger[54233:303] Seeking for 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
2014-02-06 15:03:07.966 Rival Messenger[54233:303] Seek to 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30 via 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:03:07.966 Rival Messenger[54233:303] Sending to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10: {
c = f1ce228c395098791e68d2bb2544a8cd;
seek = 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30;
type = seek;
}
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Received a line packet for 6251ba0c54726e8fc84a9c0b0ece572c
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = f1ce228c395098791e68d2bb2544a8cd;
end = 1;
see = (
5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
);
}
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Checking for 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30 in sees (
5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
)
2014-02-06 15:03:07.971 Rival Messenger[54233:303] We found 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30!
2014-02-06 15:03:07.971 Rival Messenger[54233:303] Seeking for 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
--- BIG PAUSE --
2014-02-06 15:03:07.966 Rival Messenger[54233:303] Seek to 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30 via 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:03:07.966 Rival Messenger[54233:303] Sending to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10: {
c = f1ce228c395098791e68d2bb2544a8cd;
seek = 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30;
type = seek;
}
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Received a line packet for 6251ba0c54726e8fc84a9c0b0ece572c
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = f1ce228c395098791e68d2bb2544a8cd;
end = 1;
see = (
5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
);
}
2014-02-06 15:03:07.970 Rival Messenger[54233:303] Checking for 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30 in sees (
5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30
)
2014-02-06 15:03:07.971 Rival Messenger[54233:303] We found 5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30!
2014-02-06 15:03:07.971 Rival Messenger[54233:303] Seeking for 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:03:36.254 Rival Messenger[54233:303] Received a line packet for 6251ba0c54726e8fc84a9c0b0ece572c
2014-02-06 15:03:36.254 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = 1931a12b5125777b1d494fcda365d664;
seed = 1;
}
2014-02-06 15:03:59.984 Rival Messenger[54233:303] gone for unreliable 1931a12b5125777b1d494fcda365d664
2014-02-06 15:04:31.279 Rival Messenger[54233:303] Received a line packet for 6251ba0c54726e8fc84a9c0b0ece572c
2014-02-06 15:04:31.279 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = 1931a12b5125777b1d494fcda365d664;
seed = 1;
}
2014-02-06 15:04:31.280 Rival Messenger[54233:303] looking for 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:04:31.280 Rival Messenger[54233:303] We found line to hashname 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 <THLine: 0x6100000be960>
2014-02-06 15:04:31.280 Rival Messenger[54233:303] MethodCall - RMController :: channelReady:type:firstPacket:
2014-02-06 15:04:31.280 Rival Messenger[54233:303] Info - RMController :: channelReady:type:firstPacket: -- Channel 1931a12b5125777b1d494fcda365d664 ready. First packet: {
c = 1931a12b5125777b1d494fcda365d664;
seed = 1;
}
2014-02-06 15:04:31.280 Rival Messenger[54233:303] Adding a channel
2014-02-06 15:04:31.299 Rival Messenger[54233:303] Open timestamp is 1391717071
2014-02-06 15:04:31.317 Rival Messenger[54233:303] Line setup for cfeec660e5c0f94bc9a08fe8b353d41d
2014-02-06 15:04:31.317 Rival Messenger[54233:303] MethodCall - RMController :: openedLine:
2014-02-06 15:04:31.317 Rival Messenger[54233:303] Debug - RMController :: openedLine: -- Line opened to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:04:31.317 Rival Messenger[54233:303] MethodCall - RMAddFriendController :: openedLine:
2014-02-06 15:04:31.318 Rival Messenger[54233:303] looking for 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:04:31.318 Rival Messenger[54233:303] We found line to hashname 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 <THLine: 0x6380000b7e20>
2014-02-06 15:04:31.318 Rival Messenger[54233:303] Sending to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10: {
c = 73cec9da736802c5e8454b5bbede6f10;
see = (
892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
);
seed = 1;
type = link;
}
2014-02-06 15:04:31.344 Rival Messenger[54233:303] Open timestamp is 1391717071
2014-02-06 15:04:31.362 Rival Messenger[54233:303] Line setup for a049ce665c0a1c99d8f0ad9413d1d25e
2014-02-06 15:04:31.362 Rival Messenger[54233:303] MethodCall - RMController :: openedLine:
2014-02-06 15:04:31.362 Rival Messenger[54233:303] Debug - RMController :: openedLine: -- Line opened to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:04:31.362 Rival Messenger[54233:303] MethodCall - RMAddFriendController :: openedLine:
2014-02-06 15:04:31.363 Rival Messenger[54233:303] Sending to 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10: {
seed = 1;
}
2014-02-06 15:04:31.364 Rival Messenger[54233:303] Received a line packet for cfeec660e5c0f94bc9a08fe8b353d41d
2014-02-06 15:04:31.365 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = 1931a12b5125777b1d494fcda365d664;
seed = 1;
}
2014-02-06 15:04:31.365 Rival Messenger[54233:303] looking for 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10
2014-02-06 15:04:31.365 Rival Messenger[54233:303] We found line to hashname 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 <THLine: 0x6380000b7d00>
2014-02-06 15:04:31.365 Rival Messenger[54233:303] MethodCall - RMController :: channelReady:type:firstPacket:
2014-02-06 15:04:31.365 Rival Messenger[54233:303] Info - RMController :: channelReady:type:firstPacket: -- Channel 1931a12b5125777b1d494fcda365d664 ready. First packet: {
c = 1931a12b5125777b1d494fcda365d664;
seed = 1;
}
2014-02-06 15:04:31.366 Rival Messenger[54233:303] Adding a channel
2014-02-06 15:04:31.366 Rival Messenger[54233:303] Received a line packet for cfeec660e5c0f94bc9a08fe8b353d41d
2014-02-06 15:04:31.366 Rival Messenger[54233:303] Line 892931c0694e1c09c79f536c2f85188383e46556604ca811b6c6fb172c7fef10 handling {
c = 73cec9da736802c5e8454b5bbede6f10;
see = (
fb4501e521b7c29a5b29f558f6fd6ce0006d62e70edca19813bd3b0f99237e02
);
seed = 1;
}
SEED:
in 229 line 130 ipv4,172.20.0.230,49213,
LINEIN {"c":"f1ce228c395098791e68d2bb2544a8cd","type":"seek","seek":"5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30"}
new unreliable channel fb4501e521b7c29a5b29f558f6fd6ce0006d62e70edca19813bd3b0f99237e02 seek f1ce228c395098791e68d2bb2544a8cd
SEND seek {"end":true,"see":["5b4843e0f58216e8547c47baef80fd708bf93aff6c78391baf58575bf5e11d30"],"c":"f1ce228c395098791e68d2bb2544a8cd"}
line sending fb4501e521b7c29a5b29f558f6fd6ce0006d62e70edca19813bd3b0f99237e02 6251ba0c54726e8fc84a9c0b0ece572c
out 227 ipv4,172.20.0.230,49213, fb4501e521b7c29a5b29f558f6fd6ce0006d62e70edca19813bd3b0f99237e02
Implement the 1a cipher set, to give us a full implementation
On determining a line may be stale, we should pause all open channels and attempt to re establish the line.
A property attached to an identity to delegate it's purpose as a seed peer. This should be used to ensure the seed never gets removed from the dht, and that we always re-establish lines (sleep/wake or general timeouts)
Reliable channel packet buffers need to be completed to correctly retransmit missed packets, and queue the resent packets correctly for delegation
I'm trying to build this but not having any luck โ keeps failing due to not finding the sodium headers:
In file included from /Code/Others/Cocoa/telehash/common/THLine.m:29:
/Code/Others/Cocoa/telehash/common/THCipherSet3a.h:10:10: fatal error: 'sodium.h' file not found
#include <sodium.h>
Looks like libsodium has to be built first; so I cd'd into it and did the usual "./autogen.sh && ./configure && make" thing. This build successfully, but that doesn't fix the Xcode error.
The telehash target has a header path $(PROJECT_DIR)/libsodium/build/include
, but there's no build
subdirectory in libsodium
.
Any idea what to do next?
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.