There's a lot of notes etc on this available via SVN: https://emu.freenetproject.org/svn/trunk/freenet/devnotes/specs/fcp.txt (Which is definitely not an actual spec yet!).
On Wed, Jan 18, 2006 at 09:56:13AM -0800, Ian Clarke wrote: > Cool, I have created a Wiki page for this, if anyone feels like > starting it please feel free: > > http://wiki.freenetproject.org/FreenetFCPSpec2Point0 > > Ian. > > On 18 Jan 2006, at 09:49, Matthew Toseland wrote: > > >We now have a very basic FCP implementation working in 0.7, from build > >362 onwards. > > > >$ telnet 127.0.0.1 8000 > >Trying 127.0.0.1... > >Connected to 127.0.0.1. > >Escape character is '^]'. > >ClientHello // client to node > >Name=hello1 > >ExpectedVersion=0.7.0 > >End > >NodeHello // node to client > >FCPVersion=0.7.0 > >Version=Fred,0.7,1.0,361 > >Node=Fred > >EndMessage > >ClientPut // client to node, with payload > >URI=KSK at blahblahblah.86149 > >DataLength=9 > >Identifier=6 > >End > >Hello !! > >InsertSuccessful // node to client > >Identifier=6 > >URI=freenet:KSK at blahblahblah.86149 > >EndMessage > >ClientGet // client to node > >Identifier=haha > >URI=freenet:KSK at blahblahblah.86149 > >End > > > > > >This is not set in stone, I welcome suggestions for improvement! > > > >Currently defined messages (client to node): > > > >ClientHello > >Name=<client name> > >ExpectedVersion=0.7.0 > >End > > > >ClientGet > >IgnoreDS=false // true = ignore the datastore > >DSOnly=false // true = only check the datastore, don't route (~= > >htl 0) > >URI=KSK at gpl.txt > >Identifier=Request Number One > >Verbosity=0 // no status, just tell us when it's done > >ReturnType=direct // return all at once over the FCP connection > >MaxSize=100 // maximum size of returned data (all numbers in hex) > >MaxTempSize=1000 // maximum size of intermediary data > >MaxRetries=100 // automatic retry supported as an option > >EndMessage > > > >ClientPut > >URI=CHK@ // could as easily be an insertable SSK URI > >Metadata.ContentType=text/html > >DataLength=19000 // hex for 100kB > >Identifier=Insert-1 // identifier, as always > >Verbosity=0 // just report when complete > >MaxRetries=999999 // lots of retries > >Data > ><data> > > > >Node to client: > > > >NodeHello > >FCPVersion=<protocol version, 0.7.0> > >Node=Fred > >Version=Fred,0.7,1.0,361 > >EndMessage > > > >PutSuccessful > >Identifier=<identifier> > >URI=<uri to fetch> > >EndMessage > > > >PutFailed > >Code=9 // error code > >Identifier=1 // identifier > >ExpectedURI=freenet:KSK at hello.toad // insert URI if it succeeded > >CodeDescription=Insert collided with different, pre-existing data > >at the > > same key // description of error > >ExtraDescription=Hmmm // more info on the error > >EndMessage > > > >GetFailed > >Code=<error code> > >CodeDescription=<description of error code> > >ExtraDescription=<extra description of this specific error> > >Fatal=<true|false; true means there isn't much point retrying as it's > > probably an error with the data> > >Identifier=<identifier passed in by client> > >EndMessage > > > >ProtocolError // indicates an FCP protocol error > >Code=1 // error code > >CodeDescription=ClientHello must be first message // description of > >error > >ExtraDescription=Duh // more info on the error > >Fatal=false // means the connection stays open > >EndMessage > > > >IdentifierCollision // client tried to reuse an Identifier > >Identifier=1 > >EndMessage > >-- > >Matthew J Toseland - toad at amphibian.dyndns.org > >Freenet Project Official Codemonkey - http://freenetproject.org/ > >ICTHUS - Nothing is impossible. Our Boss says so. > >_______________________________________________ > >Tech mailing list > >Tech at freenetproject.org > >http://emu.freenetproject.org/cgi-bin/mailman/listinfo/tech > > _______________________________________________ > Tech mailing list > Tech at freenetproject.org > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/tech -- Matthew J Toseland - toad at amphibian.dyndns.org Freenet Project Official Codemonkey - http://freenetproject.org/ ICTHUS - Nothing is impossible. Our Boss says so. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/tech/attachments/20060118/efb5408b/attachment.pgp>
