From df7de6cb900baa0749b1f31083ec0e1ca4997a15 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 2 Jul 2018 15:24:10 -0400 Subject: [PATCH 1/9] Document a convention for encouraging donations The convention smuggles an address in the node nickname and uses Zcash shielded transactions for privacy. --- docs/accepting-donations.rst | 78 ++++++++++++++++++++++++++++++++++++ docs/index.rst | 1 + 2 files changed, 79 insertions(+) create mode 100644 docs/accepting-donations.rst diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst new file mode 100644 index 000000000..839c6fc5a --- /dev/null +++ b/docs/accepting-donations.rst @@ -0,0 +1,78 @@ +======================== +Storage Server Donations +======================== + +The following is a configuration convention which allows users to anonymously support the operators of storage servers. +Donations are made using `Zcash shielded transactions`_ to limit the amount of personal information incidentally conveyed. + +Sending Donations +================= + +To support a storage server following this convention, you need several things: + +* a Zcash wallet capable of sending shielded transactions + (this *may* require a Zcash full node) +* a shielded address with sufficient balance +* a running Tahoe-LAFS client node which knows about the recipient storage server + +For additional protection, you may also wish to operate your Zcash wallet and full node using Tor. + +Find Zcash Shielded Address +--------------------------- + +To find an address at which a storage server operator wishes to receive donations, +launch the Tahoe-LAFS web UI:: + + $ tahoe webopen + +Inspect the page for the storage server area. +This will have a heading like *Connected to N of M known storage servers*. +Each storage server in this section will have a nickname. +A storage server with a nickname beginning with ``zcash:`` is signaling it accepts Zcash donations. +Copy the full address following the ``zcash:`` prefix and save it for the next step. +This is the donation address. +Donation addresses beginning with ``z`` are shielded. +It is recommended that all donations be sent from and to shielded addresses. + +Send the Donation +----------------- + +First, select a donation amount. +Next, use a Zcash wallet to send the selected amount to the donation address. +Using the Zcash cli wallet, this can be done with a command like:: + + $ zcash-cli z_sendmany $YOUR_ADDRESS '[{"address": "$DONATION_ADDRESS", "amount": $AMOUNT}]' + +Remember that you must also have funds to pay the transaction fee +(which defaults to 0.0001 ZEC in mid-2018). + +You can find ``$YOUR_ADDRESS`` using one of several commands. +To find + +Receiving Donations +=================== + +To receive donations from users following this convention, you need the following: + +* a Zcash shielded address + +Configuring Tahoe-LAFS +---------------------- + +The Zcash shielded address is placed in the storage server's ``nickname`` field. +Edit ``tahoe.cfg`` and edit the ``nickname`` field in the ``node`` section like so:: + + [node] + nickname = zcash:zABCDEF.... + +Then restart the storage server. + +Further Reading +=============== + +To acquiant yourself with the security and privacy properties of Zcash, +refer to the `Zcash documentation`_. + +.. _Zcash shielded transactions: https://z.cash/support/security/privacy-security-recommendations.html#transaction + +.. _Zcash documentation: https://z.cash/technology/index.html diff --git a/docs/index.rst b/docs/index.rst index 57f17acb9..7dcd5395f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -32,6 +32,7 @@ Contents: backdoors donations + accepting-donations expenses cautions write_coordination From fad4ffe37edaf7ca7497f08bc543062d93ca4f99 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 2 Jul 2018 15:29:51 -0400 Subject: [PATCH 2/9] Point to the new doc from existing config docs Perhaps this will make it more likely folks will find the information. --- docs/configuration.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/configuration.rst b/docs/configuration.rst index e0372882f..3d7d68ef3 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -683,6 +683,8 @@ Client Configuration location to prefer their local servers so that they can maintain access to all of their uploads without using the internet. +In addition, +see :doc:`accepting-donations` for a convention for donating to storage server operators. Frontend Configuration ====================== @@ -793,6 +795,8 @@ Storage Server Configuration (i.e. ``BASEDIR/storage``), but it can be placed elsewhere. Relative paths will be interpreted relative to the node's base directory. +In addition, +see :doc:`accepting-donations` for a convention encouraging donations to storage server operators. Running A Helper ================ From de95a2092aba360564710b496338665b5bd4e658 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 2 Jul 2018 15:34:35 -0400 Subject: [PATCH 3/9] Refer to wallet documentation --- docs/accepting-donations.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index 839c6fc5a..b1ab1bcec 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -46,9 +46,6 @@ Using the Zcash cli wallet, this can be done with a command like:: Remember that you must also have funds to pay the transaction fee (which defaults to 0.0001 ZEC in mid-2018). -You can find ``$YOUR_ADDRESS`` using one of several commands. -To find - Receiving Donations =================== From e2ceb4f8e4aa0500f511fc0c030fa06aba40f9e0 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 2 Jul 2018 15:38:10 -0400 Subject: [PATCH 4/9] Spelling fix --- docs/accepting-donations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index b1ab1bcec..1763ce6cc 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -67,7 +67,7 @@ Then restart the storage server. Further Reading =============== -To acquiant yourself with the security and privacy properties of Zcash, +To acquaint yourself with the security and privacy properties of Zcash, refer to the `Zcash documentation`_. .. _Zcash shielded transactions: https://z.cash/support/security/privacy-security-recommendations.html#transaction From 840120186878e8f6e7ba4bbba518dba9e49d8e98 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 3 Jul 2018 13:02:41 -0400 Subject: [PATCH 5/9] convey the basis for our prediction instead of the prediction. we know the basis is true. who knows about the prediction. --- docs/accepting-donations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index 1763ce6cc..e40fe0435 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -11,7 +11,7 @@ Sending Donations To support a storage server following this convention, you need several things: * a Zcash wallet capable of sending shielded transactions - (this *may* require a Zcash full node) + (at least until Zcash 1.1.1 this requires a Zcash full node) * a shielded address with sufficient balance * a running Tahoe-LAFS client node which knows about the recipient storage server From e1c1cd163737bb8af6852505412a83681d1c9f18 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 3 Jul 2018 13:03:23 -0400 Subject: [PATCH 6/9] Verisimilitude --- docs/accepting-donations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index e40fe0435..5bae71539 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -60,7 +60,7 @@ The Zcash shielded address is placed in the storage server's ``nickname`` field. Edit ``tahoe.cfg`` and edit the ``nickname`` field in the ``node`` section like so:: [node] - nickname = zcash:zABCDEF.... + nickname = zcash:zcABCDEF.... Then restart the storage server. From fbd2374ef03e2e799309350e3572dbb4fbc64c5e Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 3 Jul 2018 13:03:48 -0400 Subject: [PATCH 7/9] point to the new doc site --- docs/accepting-donations.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index 5bae71539..735fd602c 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -72,4 +72,4 @@ refer to the `Zcash documentation`_. .. _Zcash shielded transactions: https://z.cash/support/security/privacy-security-recommendations.html#transaction -.. _Zcash documentation: https://z.cash/technology/index.html +.. _Zcash documentation: http://zcash.readthedocs.io/en/latest/ From 4f04521fe535758ae43a6f594a8d412a091a3973 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 17 Jul 2018 13:14:36 -0400 Subject: [PATCH 8/9] encourage use of variables and copy/paste of command --- docs/accepting-donations.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/accepting-donations.rst b/docs/accepting-donations.rst index 735fd602c..39b6a4c9e 100644 --- a/docs/accepting-donations.rst +++ b/docs/accepting-donations.rst @@ -39,9 +39,12 @@ Send the Donation First, select a donation amount. Next, use a Zcash wallet to send the selected amount to the donation address. -Using the Zcash cli wallet, this can be done with a command like:: +Using the Zcash cli wallet, this can be done with commands like:: - $ zcash-cli z_sendmany $YOUR_ADDRESS '[{"address": "$DONATION_ADDRESS", "amount": $AMOUNT}]' + $ DONATION_ADDRESS="..." + $ AMOUNT="..." + $ YOUR_ADDRESS="..." + $ zcash-cli z_sendmany $YOUR_ADDRESS "[{\"address\": \"$DONATION_ADDRESS\", \"amount\": $AMOUNT}]" Remember that you must also have funds to pay the transaction fee (which defaults to 0.0001 ZEC in mid-2018). From f77192db52b0a49db5f19bdcb113225de99dc961 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 17 Jul 2018 13:17:52 -0400 Subject: [PATCH 9/9] news file entry --- NEWS.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index dc6d63e81..74b01e8c5 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -43,6 +43,8 @@ configurable (`PR472`_). A PyInstaller-based build is now available (`PR421`_). A "Docker compose" setup for development purposes is now available (`PR445`_). +There is now a recommended workflow for Zcash-based donations to support +storage server operators (`PR506`_). Bug Fixes in Core ----------------- @@ -145,6 +147,7 @@ everyone! A complete list of these PRs and contributions: `PR499`_: `exarkun`_ (with `meejah`_) `PR501`_: `exarkun`_ (with `meejah`_) `PR502`_: `exarkun`_ (with `meejah`_) +`PR506`_: `exarkun`_ (with `crwood`_, `nejucomo`_) Developer and Internal Changes @@ -236,10 +239,12 @@ improvements which shouldn't have any user-visible effects: .. _PR474: https://github.com/tahoe-lafs/tahoe-lafs/pull/474 .. _PR482: https://github.com/tahoe-lafs/tahoe-lafs/pull/482 .. _PR502: https://github.com/tahoe-lafs/tahoe-lafs/pull/502 +.. _PR506: https://github.com/tahoe-lafs/tahoe-lafs/pull/506 .. _AnBuKu: https://github.com/AnBuKu .. _ValdikSS: https://github.com/ValdikSS .. _bookchin: https://github.com/bookchin .. _crwood: https://github.com/crwood +.. _nejucomo: https://github.com/nejucomo .. _daira: https://github.com/daira .. _david415: https://github.com/david415 .. _exarkun: https://github.com/exarkun