Merge the SOCKS proxy pages into master The wiki gains a user page on the SOCKS5 proxy of the socks-proxy branch and two developer pages on its implementation and its chains, with two figures. Pages the branch makes stale note where it differs.
Note what the socks-proxy branch changes on existing pages The branch adds the communication spork under the id 1040, offers other protocol identifiers and opens a proxy port when one is given. The pages keep the facts of the release and point to the SOCKS proxy page where the branch differs.
List the SOCKS proxy pages in the sidebar The SOCKS proxy and its two developer pages sit under Upcoming, after the S3 pages and before the ledger.
Describe the chains that carry SOCKS proxy traffic Chains are append-only logs in memory that the members of a shard group host for their clients. The page covers entries and their bytes, admission, the chain packets, joins, refusals, reconcile and the budgets each stream gets.
Describe the implementation of the SOCKS proxy The page covers the proxy module and its glue in the daemon, the SOCKS5 front end, shard groups and exits, the keys and sealing of a session, the exit side and the full destination policy. A figure shows the messages of a CONNECT session.
Add a page on the SOCKS proxy of the socks-proxy branch Users and operators get one page on the SOCKS5 proxy: turning it on, the communication spork that switches it on for the network, using it from curl or a browser, its replies and what it does not protect. A figure shows the path of one session through a shard group.
Merge the S3 endpoint pages into master The wiki gains a user page on the S3 endpoint of the s3 branch and four developer pages on its server, namespace index, blob layer and features, with three figures. Pages the branch makes stale note where it differs.
Note the faster pings and idle timeout of the s3 branch On the s3 branch peers ping every 20 seconds and drop an idle connection after 1 minute, and a HELLO from a known peer replaces the connection it made before. A restarted peer is thus noticed within about a minute rather than after 15.
Note where the s3 branch replaces the REST object store The s3 branch drops the S3-style buckets of the REST interface, the --restmaxupload option and the s3data directory in favour of the S3 endpoint on port 52885. The pages keep the facts of the release and point to the endpoint where the branch differs.
List the S3 pages in the sidebar under upcoming work The S3 endpoint and its implementation pages sit under Upcoming, between network storage and the ledger, laid out as the ledger pages are.
Describe the S3 features the endpoint implements Checksums, preconditions, ranges, versioning, Object Lock, lifecycle rules, CORS, tagging and name rules each get their behaviour and limits, so a client author knows where the endpoint matches Amazon S3.
Describe how S3 objects map to blobs and the cache Objects are lists of slices over immutable blobs in network storage, shared by copies and multipart uploads. The page also covers the memory-mapped cache in front of network storage and how it chooses what to evict.
Describe the namespace index of the S3 endpoint The index is a log-structured merge tree whose runs and manifests live in network storage, so its byte layouts, the flush order and what a crash leaves behind decide whether a namespace survives. Two figures show the tree and the flush sequence.
Describe the S3 server and its authentication The page covers the Netty pipeline in front of Jersey, the flow control of request and response bodies, routing, the error codes and Signature Version 4 with its payload modes, presigned URLs and form uploads. A figure shows the path of a request through the pipeline.
Add an overview of the S3 module for developers The page maps the packages of the hedgehog-s3 module to the pages that cover them, lists the interfaces the module uses towards the node and describes how the daemon starts, retries and stops the gateway.
Add a page on the S3 endpoint of the s3 branch Operators and users get one page on the S3 endpoint: its port, TLS, options, access keys, client setup for aws, rclone and restic, what is supported and how a namespace is recovered from its root id. It carries the banner of upcoming work, as the endpoint is not part of a release.
Say that the REST token is checked before a body is read
Describe the limits on the body of a REST request
Show what the ledger commands write when they sign
Drop a sentence of the home page that adds nothing
Call the two parts of a claim runs of the command The claim is made by running the command twice, with the legacy wallet in between. Name the runs plainly in the text of the command line page.
Say how a node without a running ledger answers a sync A node that offers the ledger protocol but has no ledger running answers a request for blocks with an empty batch at once, so a peer that syncs moves on to another node instead of waiting for its timeout.
Say what the mint storage commands refuse up front The REST interface answers 400 for an entry that no node can mint, and the command refuses a past time for an account unless --allow-past is given, since a date written in digits is easily taken for seconds.
Say that the authority keeps the decoded mint entries The authority decodes the entries of the mint spork once for each version of the spork and finds a mint by its reference, since the ledger asks about every due mint at every tick. The pages said that nothing was cached and that every entry was decoded on every call.
Say that waiting transactions survive a promotion A node that replaces another in the same process, as a signing node replaces the observer it started as, takes over the transactions that waited for a block. Before, a promotion dropped what the node had taken in. A restart of the process still loses them, which the pages now say in those words.
Describe the send queue that puts votes ahead of bulk Each peer has a queue of two lanes. Ballots, heartbeats and statuses are written before proposals, decisions and transactions, so a big block that fills the stream no longer holds up the votes. Each lane is bounded in bytes. The old text said that a message the stream could not take was dropped quietly.
Describe how spork checks and amounts are bounded Signature checks of sporks that arrive are given out in turns per spork type and sending peer, so a flood of forged sporks cannot use up the work of the node. Amounts in sporks are read with a bound on decimals, digits and length, since a few bytes of exponent could otherwise write out as gigabytes when signed. Also correct the path of SporkRecipients.
Say that the node proposing a spork waits on it too The node a spork is proposed on records the proposal at once, as every other node does when it receives it, and answers no for what the spork governs until it is co-signed or lapses. A blacklist therefore takes effect quickly and claims are held back meanwhile, at the price of a short lockout. A renewal holds all four ledger sporks the same way.
Describe the cap on what a spork mints to one address A node refuses a spork mint once the mints made to its address would pass the sum that the mint spork grants that address. This keeps a later version of the spork from paying an address twice by giving the same grant a new number. The total is derived from the blocks and a claimed legacy address keeps counting under its own address.
Name the folder of each chain in the ledger pages The block log and the sign state of a chain sit in a folder of their own below ledger, named by the start of the chain id, and the node logs that folder at start. A node given another genesis opens another folder and leaves the old ones. The pages said the folder was the same for every genesis and had to be moved away by hand.