#84 closed enhancement (fixed)

allow introducer to provide default encoding parameters (k-of-n)

Reported by: warner Owned by: somebody
Priority: major Milestone: 0.5.0
Component: code Version: 0.4.0
Keywords: encoding Cc:
Launchpad Bug:

Description (last modified by warner)

For small+centrally-managed grids, the admin of the introducer should be able to recommend the values for k and n (as in k-of-n encoding). The value of 'n' should be set to be about the maximum number of peers in the network, since there's no point in producing more shares than there are peers (unless you expect more peers to arrive in the future, and we need to write more code to take advantage of new peers without reencoding anyways). The value of 'k' should be set to achieve whatever reliability-vs-expansion goals you have in mind.

For small networks, we're thinking that 3-of-10 seems like a good idea.

Change History (4)

comment:1 Changed at 2007-07-12T23:30:11Z by warner

  • Resolution set to fixed
  • Status changed from new to closed

Done. Write to a file named 'encoding_parameters' in the introducer's base directory, with three numbers in it (like "3 7 10", or "3\n7\n10\n"), and they will be used as (k, desired, n), where 'desired' is the threshold that the uploader will be happy with (it will try to place all 'n' shares, but up to n-desired shareholders can drop out during upload without triggering a failure).

And note that setting k=1 is equivalent to replication.

comment:2 Changed at 2013-04-10T23:20:35Z by daira

  • Resolution fixed deleted
  • Status changed from closed to reopened

I wasn't aware this had been fixed. Was it fixed and then undone, or only partly implemented?

comment:3 Changed at 2013-04-11T11:42:45Z by warner

  • Resolution set to fixed
  • Status changed from reopened to closed

I think it was implemented, then we decided it wasn't such a good idea after all and disabled it. There's some vestigal support RIIntroducerSubscriberClient_v2.set_encoding_parameters, but it doesn't end up doing anything (I think it sets introducer_client.encoding_parameters which is then ignored).

It might be worth talking about whether we should bring it back (I think I made the argument that the introducer is in a slightly better position to know good parameters, and I think Zooko made the argument that clients should be making that decision for themselves). It might also be worth talking about systematically removing the lingering code (except maybe for the actual remote method receiver, which should stick around as a NOP so that old introducers who try to call it won't cause exceptions).

I'll mark this as reclosed.

comment:4 Changed at 2016-04-02T20:17:08Z by warner

  • Description modified (diff)

The vestigal support got removed in the 1.11.0 release, by [56a9f5ad].

Note: See TracTickets for help on using tickets.