Ok, lets focus on the Wiki until the spec has solidified some more, then we can commit it to SVN.
Ian. On 18 Jan 2006, at 09:58, Matthew Toseland wrote: > 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. > _______________________________________________ > Tech mailing list > Tech at freenetproject.org > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/tech
