00:23:34
| * pfraze | joined |
00:58:45
| * vweevers | quit (Ping timeout: 268 seconds) |
01:53:38
| * contrahax | quit (Quit: Sleeping) |
02:31:32
| * contrahax | joined |
02:35:35
| * domanic | joined |
03:01:00
| <domanic> | mafintosh, hey, I've been thinking about a more efficient EC replication protocol for largish objects |
03:01:30
| <domanic> | say, to build something like meatspace, where each message is a animated gif, with a size, say, 1 mb |
03:01:48
| <domanic> | using a naive approach like secure-scuttlebutt currently does |
03:02:01
| <domanic> | you can easily end up sending the same message multilpe times |
03:02:27
| <domanic> | so, you can reduce the number of connections, but then the network gets weaker. |
03:03:26
| <domanic> | so, had an idea, instead of sending the whole msg, just send a "have" message which only contains an id for that message ({feed,seq}) |
03:03:55
| <domanic> | then if you are the first peer to mention that msg, you'll get asked for the whole thing |
03:04:13
| <domanic> | when someone asks for the whole thing, send it, and subsequent messages in that feed |
03:04:31
| <domanic> | but if two peers send you the same entire message, tell the second one that you already have it |
03:04:59
| <domanic> | then, they'll just send you HAVE messages instead, |
03:06:06
| <domanic> | so if a have message is say, 100 bytes, but the message it self is larger (say, 20k for a second worth of mp3, or 1mb for second worth of gif) |
03:06:19
| <domanic> | then you have very cheap realtime replication |
03:07:05
| <domanic> | and, when there is a failure, the network heals very quickly: you'll get a HAVE message before that MSG, so you just ask them for that ms. |
03:07:06
| <domanic> | msg |
03:07:28
| <domanic> | basically, you start with a gossip protocol, and it builds a tree overlay on top of it. |
03:07:32
| <domanic> | ... |
03:07:36
| <domanic> | BUT THE BEST BIT |
03:07:50
| <domanic> | I found a paper which already describes the idea! http://www.gsd.inesc-id.pt/~jleitao/pdf/srds07-leitao.pdf |
03:08:39
| <domanic> | (when used in Optimal Latency mode, as described on page 12) |
03:09:25
| * johnny__ | joined |
03:13:18
| <mafintosh> | domanic: great idea. our hypercore protocol already supports push mode and i'm adding EC signed feeds. would be a fun prototype to implement on top |
03:14:47
| <domanic> | mafintosh, this would mainly make sense for live, realtime feeds |
03:15:28
| <mafintosh> | domanic: yea agreed |
03:15:32
| <domanic> | mafintosh, how does hypercore push mode work? |
03:16:14
| <mafintosh> | domanic: i meant that the wire protocol supports pushing out chunks the other side didn't ask for |
03:16:23
| <domanic> | ah, got it |
03:16:43
| <mafintosh> | domanic: so i'd need this on top |
03:17:06
| <mafintosh> | domanic: but we already advertise what you have using HAVE messages |
03:19:29
| <domanic> | mafintosh, yeah cool. I also want to use this for a on-the-side-of-ssb chat protocol |
03:19:39
| <domanic> | that isn't persisted in the logs the same way |
03:19:51
| <domanic> | so it can have better privacy properties |
03:19:59
| <mafintosh> | nice |
03:20:15
| <domanic> | BUT, if it's efficient for large objects you could do voice chat or gifs or video too |
03:20:27
| <domanic> | especially I want more reliable voice |
03:20:57
| <domanic> | thinking something like a walky talky - where you push a button to transmit, except it's a reliable transmission |
03:21:26
| <domanic> | cos otherwise the users end up implementing reliability informally (sorry, i missed that) |
03:21:51
| <domanic> | also, it needs built in emoticons, so you can "aha" and <nods> |
03:22:02
| <domanic> | etc |
03:26:43
| <mafintosh> | domanic: using this for voice would be great |
03:28:16
| * pfraze | quit (Remote host closed the connection) |
03:38:16
| * pfraze | joined |
04:08:27
| * phated | joined |
04:08:54
| * yoshuawuyts | joined |
04:10:14
| * phated_ | joined |
04:13:16
| * phated | quit (Ping timeout: 252 seconds) |
04:23:07
| * phated_ | quit |
05:13:40
| * domanic | quit (Read error: Connection reset by peer) |
05:27:03
| * johnny__ | quit (Ping timeout: 240 seconds) |
05:28:47
| * johnny | joined |
05:29:11
| * johnny | changed nick to Guest78719 |
06:21:33
| * Guest78719 | quit (Ping timeout: 240 seconds) |
06:33:01
| * yoshuawuyts | quit (Quit: Connection closed for inactivity) |
07:07:38
| * lachenmayer_ | joined |
07:08:17
| * timoxley_ | joined |
07:15:29
| * timoxley | quit (*.net *.split) |
07:15:29
| * pspi_ | quit (*.net *.split) |
07:15:29
| * rf_ | quit (*.net *.split) |
07:15:29
| * lachenmayer | quit (*.net *.split) |
07:15:29
| * mint_xian | quit (*.net *.split) |
07:15:29
| * mawe | quit (*.net *.split) |
07:15:29
| * guybrush | quit (*.net *.split) |
07:16:11
| * pspi_ | joined |
07:16:11
| * rf_ | joined |
07:16:11
| * mint_xian | joined |
07:16:11
| * mawe | joined |
07:16:11
| * guybrush | joined |
08:19:51
| * pfraze | quit (Remote host closed the connection) |
08:54:46
| * vweevers | joined |
09:11:41
| * vweevers | quit (Quit: vweevers) |
09:11:58
| * vweevers | joined |
09:12:13
| * contrahax | quit (Quit: Sleeping) |
09:12:49
| * drptbl | joined |
09:50:17
| * contrahax | joined |
09:54:17
| * peutetre | joined |
10:02:25
| * peutetre | quit (Quit: ...) |
10:07:24
| * peutetre | joined |
10:08:01
| * drptbl | quit (Quit: My MAC has gone to sleep. zZz..) |
10:15:59
| * peutetre | quit (Quit: ...) |
10:21:46
| * drptbl | joined |
10:24:42
| * peutetre | joined |
10:44:04
| * vweevers | quit (Quit: vweevers) |
10:44:21
| * vweevers | joined |
11:04:51
| * vweevers | quit (Ping timeout: 244 seconds) |
11:05:21
| * peutetre | quit (Quit: ...) |
11:28:17
| * contrahax | quit (Quit: Sleeping) |
11:34:46
| * contrahax | joined |
12:18:07
| * contrahax | quit (Quit: Sleeping) |
12:38:20
| * peutetre | joined |
13:07:31
| * vweevers | joined |
14:01:21
| * pfraze | joined |
14:03:00
| * pfraze | quit (Remote host closed the connection) |
14:37:50
| * pfallenop | quit (Ping timeout: 248 seconds) |
14:47:44
| * pfraze | joined |
15:24:55
| * pfraze | quit (Remote host closed the connection) |
15:26:55
| * pfraze | joined |
15:31:29
| * pfraze | quit (Ping timeout: 260 seconds) |
15:32:30
| * pspi_ | quit (Ping timeout: 244 seconds) |
15:34:48
| * pspi | joined |
15:43:21
| * pspi | quit (Ping timeout: 244 seconds) |
15:45:30
| * pfraze | joined |
16:11:01
| * peutetre | quit (Quit: ...) |
16:18:31
| * peutetre | joined |
16:44:18
| * pfallenop | joined |
16:49:05
| * peutetre | quit (Quit: ...) |
16:57:04
| * shama | joined |
17:12:50
| * pfallenop | quit (Remote host closed the connection) |
17:13:09
| * pfallenop | joined |
17:13:10
| * pfallenop | quit (Changing host) |
17:13:10
| * pfallenop | joined |
17:42:36
| * vweevers | quit (Quit: vweevers) |
17:42:57
| * vweevers | joined |
17:50:29
| * johnny_ | joined |
18:07:04
| * johnny_ | quit (Ping timeout: 240 seconds) |
18:51:07
| * jjjohnny | joined |
19:12:27
| * phated | joined |
20:10:57
| * contrahax | joined |
21:11:31
| * farnsworth | quit (Ping timeout: 248 seconds) |
21:18:25
| * farnsworth | joined |
22:01:10
| * ekristen | joined |
22:56:42
| * pfraze | quit (Remote host closed the connection) |
23:18:02
| * vweevers | quit (Ping timeout: 244 seconds) |
23:22:46
| * vweevers | joined |
23:40:38
| * pfraze | joined |
23:42:37
| * pfraze | quit (Remote host closed the connection) |
23:42:52
| * pfraze | joined |