GithubHelp home page GithubHelp logo

telehash / telehash-objc Goto Github PK

View Code? Open in Web Editor NEW
25.0 25.0 5.0 10.36 MB

Telehash in Objective-C for iOS and OSX

License: MIT License

Objective-C 11.22% Ruby 0.04% Objective-C++ 0.42% C++ 65.45% C 21.95% Shell 0.32% Visual Basic 0.01% Assembly 0.55% JavaScript 0.03%

telehash-objc's People

Contributors

andymuldowney avatar dchote avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

telehash-objc's Issues

correctly re-establish a relay when needed

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)

bridge path handling

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)

Opening a line fails to return anything

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

1a cipher set

Implement the 1a cipher set, to give us a full implementation

seed identity property

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)

packetBuffer resend missing

Reliable channel packet buffers need to be completed to correctly retransmit missed packets, and queue the resent packets correctly for delegation

Build instructions needed (doesn't build out of the box)

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.