Hex Artifact Content
Not logged in

Artifact 6a9a4eccd1a59dd6f93e1305a2cac016338771d0:


0000: 6e 65 74 32 6f 20 2d 20 72 65 69 6e 76 65 6e 74  net2o - reinvent
0010: 69 6e 67 20 74 68 65 20 49 6e 74 65 72 6e 65 74  ing the Internet
0020: 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .===============
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 0a 0a 6e 65 74 32 6f 20 69 73 20 74 68 65 20  =..net2o is the 
0050: 61 74 74 65 6d 70 74 20 74 6f 20 72 65 69 6e 76  attempt to reinv
0060: 65 6e 74 20 74 68 65 20 49 6e 74 65 72 6e 65 74  ent the Internet
0070: 2e 0a 0a 47 65 74 20 69 74 20 61 6e 64 20 74 72  ...Get it and tr
0080: 79 20 69 74 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  y it.-----------
0090: 2d 2d 2d 2d 2d 2d 0a 0a 6e 65 74 32 6f 20 69 73  ------..net2o is
00a0: 20 63 75 72 72 65 6e 74 6c 79 20 75 6e 64 65 72   currently under
00b0: 20 65 61 72 6c 79 20 61 6c 70 68 61 20 74 65 73   early alpha tes
00c0: 74 2e 20 5b 47 65 74 20 69 74 5d 28 67 65 74 2d  t. [Get it](get-
00d0: 69 74 2e 6d 64 29 20 61 6e 64 0a 5b 74 72 79 20  it.md) and.[try 
00e0: 69 74 5d 28 74 72 79 2d 69 74 2e 6d 64 29 2e 20  it](try-it.md). 
00f0: 20 54 68 65 72 65 20 61 72 65 20 6c 6f 74 73 20   There are lots 
0100: 6f 66 20 74 68 69 6e 67 73 20 5b 74 6f 20 64 6f  of things [to do
0110: 5d 28 74 6f 64 6f 2e 6d 64 29 2e 0a 0a 57 68 61  ](todo.md)...Wha
0120: 74 27 73 20 62 72 6f 6b 65 6e 3f 0a 2d 2d 2d 2d  t's broken?.----
0130: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 2a 20 54 68  ----------..* Th
0140: 65 20 69 6e 74 65 72 6e 65 74 20 62 61 73 65 73  e internet bases
0150: 20 6f 6e 20 61 73 73 75 6d 70 74 69 6f 6e 73 20   on assumptions 
0160: 32 30 2d 33 30 20 79 65 61 72 73 20 6f 6c 64 0a  20-30 years old.
0170: 2a 20 54 68 65 73 65 20 61 73 73 75 6d 70 74 69  * These assumpti
0180: 6f 6e 73 20 61 72 65 20 77 72 6f 6e 67 20 74 6f  ons are wrong to
0190: 64 61 79 0a 2a 20 4d 75 63 68 20 6f 66 20 69 74  day.* Much of it
01a0: 20 66 6f 6c 6c 6f 77 65 64 20 74 68 65 20 22 67   followed the "g
01b0: 6f 6f 64 20 65 6e 6f 75 67 68 22 20 70 72 69 6e  ood enough" prin
01c0: 63 69 70 6c 65 0a 2a 20 54 68 65 72 65 27 73 20  ciple.* There's 
01d0: 61 20 68 75 67 65 20 70 69 6c 65 20 6f 66 20 61  a huge pile of a
01e0: 63 63 75 6d 75 6c 61 74 65 64 20 63 72 75 66 74  ccumulated cruft
01f0: 0a 2a 20 46 69 78 69 6e 67 20 74 68 69 73 20 6d  .* Fixing this m
0200: 65 73 73 20 6f 6e 65 2d 62 79 2d 6f 6e 65 20 69  ess one-by-one i
0210: 73 20 74 68 65 20 77 72 6f 6e 67 20 61 74 74 65  s the wrong atte
0220: 6d 70 74 0a 0a 57 68 61 74 20 66 6f 72 3f 0a 2d  mpt..What for?.-
0230: 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 49 27 76 65 20 61  --------..I've a
0240: 20 64 72 65 61 6d 3a 20 41 20 70 65 65 72 2d 74   dream: A peer-t
0250: 6f 2d 70 65 65 72 20 6e 65 74 77 6f 72 6b 2c 20  o-peer network, 
0260: 77 68 65 72 65 20 73 65 72 76 69 63 65 73 20 6c  where services l
0270: 69 6b 65 20 73 65 61 72 63 68 20 65 6e 67 69 6e  ike search engin
0280: 65 73 20 6f 72 0a 73 6f 63 69 61 6c 20 6e 65 74  es or.social net
0290: 77 6f 72 6b 73 20 61 72 65 6e 27 74 20 6f 66 66  works aren't off
02a0: 65 72 65 64 20 62 79 20 62 69 67 20 63 6f 6d 70  ered by big comp
02b0: 61 6e 69 65 73 2c 20 77 68 6f 20 69 6e 20 74 75  anies, who in tu
02c0: 72 6e 20 6e 65 65 64 20 74 6f 20 6d 61 6b 65 20  rn need to make 
02d0: 6d 6f 6e 65 79 0a 62 79 20 73 65 6c 6c 69 6e 67  money.by selling
02e0: 20 74 68 65 20 70 72 69 76 61 63 79 20 6f 66 20   the privacy of 
02f0: 74 68 65 69 72 20 75 73 65 72 73 2e 20 57 68 65  their users. Whe
0300: 72 65 20 61 6c 6c 20 64 61 74 61 20 69 73 20 65  re all data is e
0310: 6e 63 72 79 70 74 65 64 2c 20 73 6f 20 74 68 61  ncrypted, so tha
0320: 74 0a 61 63 63 65 73 73 20 69 73 20 6f 6e 6c 79  t.access is only
0330: 20 70 6f 73 73 69 62 6c 65 20 66 6f 72 20 70 65   possible for pe
0340: 6f 70 6c 65 20 77 68 6f 20 68 61 76 65 20 74 68  ople who have th
0350: 65 20 6b 65 79 20 61 6e 64 20 72 65 61 6c 6c 79  e key and really
0360: 20 61 72 65 20 61 75 74 68 6f 72 69 7a 65 64 2e   are authorized.
0370: 0a 57 68 69 63 68 20 6c 61 79 6d 61 6e 20 63 61  .Which layman ca
0380: 6e 20 75 73 65 20 77 69 74 68 6f 75 74 20 63 72  n use without cr
0390: 79 70 74 69 63 20 75 73 65 72 20 69 6e 74 65 72  yptic user inter
03a0: 66 61 63 65 73 2e 20 57 68 65 72 65 20 74 68 65  faces. Where the
03b0: 20 62 72 6f 77 73 65 72 20 69 73 20 61 0a 70 6c   browser is a.pl
03c0: 61 74 66 6f 72 6d 20 66 6f 72 20 72 75 6e 6e 69  atform for runni
03d0: 6e 67 20 75 73 65 66 75 6c 20 61 70 70 6c 69 63  ng useful applic
03e0: 61 74 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 74  ations without t
03f0: 68 65 20 6d 65 73 73 20 6f 66 20 46 6c 61 73 68  he mess of Flash
0400: 20 61 6e 64 0a 4a 61 76 61 53 63 72 69 70 74 2e   and.JavaScript.
0410: 20 57 69 74 68 6f 75 74 20 74 68 65 20 6c 61 67   Without the lag
0420: 20 6f 66 20 22 62 75 66 66 65 72 20 62 6c 6f 61   of "buffer bloa
0430: 74 22 20 61 6e 64 20 77 69 74 68 6f 75 74 20 74  t" and without t
0440: 68 65 20 73 70 65 65 64 20 70 72 6f 62 6c 65 6d  he speed problem
0450: 73 20 6f 66 0a 61 20 70 72 6f 74 6f 63 6f 6c 20  s of.a protocol 
0460: 6e 6f 74 20 64 65 73 69 67 6e 65 64 20 74 6f 20  not designed to 
0470: 62 65 20 61 73 73 69 73 74 65 64 20 62 79 20 68  be assisted by h
0480: 61 72 64 77 61 72 65 2e 0a 0a 57 68 61 74 20 6e  ardware...What n
0490: 65 65 64 73 20 74 6f 20 62 65 20 66 69 78 65 64  eeds to be fixed
04a0: 3f 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ?.--------------
04b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 2a 20 49 50 3a  ---------..* IP:
04c0: 20 55 73 65 20 73 77 69 74 63 68 2d 62 61 73 65   Use switch-base
04d0: 64 20 73 69 6d 70 6c 65 20 72 6f 75 74 69 6e 67  d simple routing
04e0: 2c 20 64 6f 6e 27 74 20 72 6f 75 74 65 20 65 76  , don't route ev
04f0: 65 72 79 20 70 61 63 6b 65 74 0a 2a 20 54 43 50  ery packet.* TCP
0500: 3a 20 4d 6f 73 74 20 64 61 74 61 20 6a 75 73 74  : Most data just
0510: 20 6e 65 65 64 73 20 74 6f 20 62 65 20 6f 62 74   needs to be obt
0520: 61 69 6e 65 64 20 72 65 6c 69 61 62 6c 65 2c 20  ained reliable, 
0530: 74 68 65 20 6f 72 64 65 72 20 64 6f 65 73 6e 27  the order doesn'
0540: 74 0a 20 20 6d 61 74 74 65 72 2e 20 41 6e 64 20  t.  matter. And 
0550: 54 43 50 27 73 20 66 6c 6f 77 20 63 6f 6e 74 72  TCP's flow contr
0560: 6f 6c 20 69 73 20 62 72 6f 6b 65 6e 20 28 64 65  ol is broken (de
0570: 6c 61 79 20 6d 69 6e 69 6d 69 7a 65 64 20 69 73  lay minimized is
0580: 20 74 68 65 20 77 61 79 20 74 6f 20 67 6f 29 2e   the way to go).
0590: 0a 2a 20 45 6e 63 72 79 70 74 69 6f 6e 20 65 76  .* Encryption ev
05a0: 65 72 79 77 68 65 72 65 3a 20 54 68 69 73 20 69  erywhere: This i
05b0: 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 6e 20 65  s no longer an e
05c0: 78 70 65 6e 73 69 76 65 20 6f 70 65 72 61 74 69  xpensive operati
05d0: 6f 6e 20 28 61 6e 64 20 66 6f 72 0a 20 20 73 79  on (and for.  sy
05e0: 6d 6d 65 74 72 69 63 20 65 6e 63 72 79 70 74 69  mmetric encrypti
05f0: 6f 6e 2c 20 66 61 73 74 20 68 61 72 64 77 61 72  on, fast hardwar
0600: 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  e implementation
0610: 20 69 73 20 66 65 61 73 69 62 6c 65 29 0a 2a 20   is feasible).* 
0620: 50 32 50 20 69 6e 73 74 65 61 64 20 6f 66 20 63  P2P instead of c
0630: 6c 69 65 6e 74 2d 73 65 72 76 65 72 0a 2a 20 41  lient-server.* A
0640: 20 6e 65 77 20 41 50 49 20 28 72 65 6e 64 65 72   new API (render
0650: 20 6c 61 79 65 72 2c 20 6d 61 72 6b 75 70 20 6c   layer, markup l
0660: 61 6e 67 75 61 67 65 2c 20 73 63 72 69 70 74 69  anguage, scripti
0670: 6e 67 29 20 2d 20 74 68 65 20 62 72 6f 77 73 65  ng) - the browse
0680: 72 20 69 73 20 74 68 65 72 65 0a 20 20 66 6f 72  r is there.  for
0690: 20 73 65 72 69 6f 75 73 20 61 70 70 6c 69 63 61   serious applica
06a0: 74 69 6f 6e 73 20 6e 6f 77 2e 0a 0a 52 65 6e 64  tions now...Rend
06b0: 65 72 69 6e 67 20 69 73 20 64 6f 6e 65 20 77 69  ering is done wi
06c0: 74 68 20 4f 70 65 6e 47 4c 20 45 53 2c 20 47 55  th OpenGL ES, GU
06d0: 49 20 6c 61 79 65 72 20 69 73 20 4d 49 4e 4f ce  I layer is MINOÎ
06e0: a3 20 32 2e 0a 0a 6e 65 74 32 6f 20 68 61 73 20  £ 2...net2o has 
06f0: 62 65 65 6e 20 69 6e 73 70 69 72 65 64 20 62 79  been inspired by
0700: 20 4f 70 65 6e 20 4e 65 74 77 6f 72 6b 20 46 6f   Open Network Fo
0710: 72 74 68 20 66 72 6f 6d 20 48 65 69 6e 7a 20 53  rth from Heinz S
0720: 63 68 6e 69 74 74 65 72 2e 0a                    chnitter..