Diff: [root] @ 9639d63ff66 | faq | css

Hellnet update

File: hellnet/crypto/asymmetric [Diff]

-- a/hellnet/crypto/asymmetric++ b/hellnet/crypto/asymmetric
@@ -1,4 +1,4 @@
h1. Asymmetric encryption

2048-bit DSA (signatures)

4096-bit RSA

File: hellnet/protocols/http/index [Diff]

-- a/hellnet/protocols/http/index++ b/hellnet/protocols/http/index
@@ -4,10 +4,9 @@

h2. Query types

|_. Query |_. Path |_. Static/dynamic |_. Description |_. More info |
| GET | @/chunks/([0-9a-f]+)@ | static | [[/hellnet/tech/chunk|Chunk]] with hash $1 | [[chunk]] |
| GET | @/meta/([^/]+)/([^/]+)@ @/meta/([0-9a-f]+)/([^/]+){,\.key,\.sign}@ | static | List of chunks which are inserted [[../tech/metatrees|Metatrees]] with [[/hellnet/tech/metachunks|meta]] $1:$2 | [[meta]] friends |
| GET, HEAD | @/hello@ | static | Check whether node is up | [[hello]] |
| POST | @/handshake@ | dynamic | Establish a link to node | [[handshake]] |
| GET | @/metamail/sync@ | dynamic | Get the list of [[../../metamail|metamail]] bundles | [[metamail/sync]] |

File deleted: hellnet/tech/metachunks [Diff]

-- a/hellnet/tech/metachunks++ /dev/null
@@ -1,6 +1 @@
h1. Metachunks

Metachunks are special files, which contain hashes of [[chunk]]s, inserted under specific category. For example, @hell-talk@ uses metachunk "talk:0" to exchange phrases between nodes.

Metachunks are stored in meta/<value>/<key> files and contain concatenated hashes

File created: hellnet/tech/metatrees [Diff]

-- /dev/null++ b/hellnet/tech/metatrees
@@ -1 +1,32 @@
h1. Metatrees

Metatrees are signed trees of named file links. They can be used to publish file structures or any other treeish structure. Each metatree is identified by [[../cryptography/asymmetric|public key]] hash and key-unique name.

Example of metatree:

This would be stored in ./meta/22fea70fde222e2463b1dd716fa9f7faf75d90ebc6517333643826348c05950021fd2a2b31dcb23c1971149adf952bd1f38763b2338708acd12e97823a5017d2/test

bc. {
"updated" : 1258639915,
"key" : "22fea70fde222e2463b1dd716fa9f7faf75d90ebc6517333643826348c05950021fd2a2b31dcb23c1971149adf952bd1f38763b2338708acd12e97823a5017d2",
"name" : "test",
"content" : {
"helloworld" : "18895861928ce6793b3386d0fccacfcca35b2aa845fc895f06013fbac50ef9cbf1f77352f041b3f82fbce109b209cd09ff763d2a95c0eba2a21967dbe32f39e5.35abcdef",
"hellodir" : {
"file1" : "7c657811658adf5d5f77bf571270a8ad242ed454fb353ff90f6ad6248edcba14fd155b8a78ad9af53fc4a58dd10464295322655ade5264598a7b5e537032d539",
"file2" : "2fc800b58bf1903d8b98a007f301d4e59baf69f9e60609e00e4cfa0c6f8307ff8abb2155c8ff2642eb687b296c99ca95ae49e322ef3f95eadddada011149e737"
}
}
}

Description of top-level fields:

"updated" : UNIX timestamp of last update
"key" : hash of public key
"name" : name of this meta
"content" : filesystem with unlimited subdirectories, keys are filenames, values are hashes (with optional dot-separated [[../cryptography/symmetric|symmetric]] encryption key)

Metatrees are stored in ./meta/$public_key_hash/$name (metatree itself), /meta/$public_key_hash/$name.date (value of "updated" field), /meta/$public_key_hash/$name.sign (detached signature)

When updating, client should first check the date; if it's bigger than his current metatree, then client downloads the tree and signature, optionally decrypts both using supplied encryption key and checks the signature validity. If it's ok, then it replaces its own metatree with downloaded one.

File: start [Diff]

-- a/start++ b/start
@@ -1,12 +1,12 @@
h1=.
h1. Welcome to BitCheese.net

p=.

p. !http://dump.bitcheese.net/files/marykys/human-brain.png!

h1=.

h1. Places of interest

h2=.

h2. English

p=.

p. "Bitcheese.net wiki":/wiki
[ *New* ] Wear your safety "CSS":/setcss!
Non-coding [[art_thou|art]]
[[faq|Bitcheese.net FAQ]]

@@ -17,9 +17,9 @@
[[Voker57|About me]]
[[nbl_markup|NBL markup]]

h2=.

h2. Russian

p=.

p. "Блог":/vlog
[[translations|Переводы песен]]
[[Sauerbraten_Editing_Tutorial.ru|Введение в редактирование карт в Sauerbraten]]

By Voker57 on 2009-11-19 15:24:36 +0000