Tonight I give an update because I finished my latest to-do item, which is to automate the transaction that joins the pump group. It took a while, but there are a lot of checks to perform when constructing the transaction from the user and P2P input. For example, the user must have enough balance to pay the pump fee (1 SNRG), the transaction fee (about 0.015 SNRG) and still have a minimum balance (most likely to be set at 200 SNRG).
An unfinished manual for joining a pump follows. I've written it mostly to illustrate my progress. It may seem complicated, but it takes only about 10 seconds to join a pump. Here's the short course:
- Click "Find Address..." and select an address.
- Click "Set..." and select a stealth address.
- Click "Join Pump" and confirm the transaction and fee.
Pump Manual - A Work in ProgressP2P Population of Pump InfoFirst, just by opening the wallet, and waiting to join the network, several fields on the pump page will be automatically populated. These fields are (1) The starting date for the ongoing pump (top panel), (2) the starting date for the next pump (bottom panel), (3) the entry fee for the next pump, and (4) the minimum balance to join the next pump (minus the entry and transaction fees to join, which should be about 1.015 SNRG total). These values come from the P2P messaging system. Another value from the P2P messaging system is the pump group Synergy address to which the user sends the entry information and fee.
I present the entirety of the pump page, missing values in only three fields in the top panel (the pick, the address that the user registered for the ongoing pump, and the minimum balance this address has had since the pump began). Populating these fields through P2P messaging and wallet inspection are my next to-do items.
Selecting the Address for RegistrationSecond the user uses the "Find Address" button to select an address with enough funds to join. Note that this image shows my testing wallet which is a little light on the funds at the moment.
Selecting the Stealth Address for Encrypted Communication through the Block ChainDelivering the pick and other info to the user must be asynchronous and private. Asynchrony means that the user should not be required to have a wallet open at the precise time the pump information is communicated (although it might be a good idea). To satisfy both this constraint and the need for privacy, the pick will be communicated with an encrypted message using a secret key known only to the sender (the pump coordinator) and receiver (pump registrant, or user). Stealth Addresses enable the necessary functionality to create this encrypted message on the block chain, where it can be read at the convenience of the registrant. The user selects the Stealth Address using the "Set..." button in the lower panel.
Joining the PumpOnce the registering address and stealth address are set, the user joins the pump by clicking the "Join Pump" button. This button sends a transaction that is constructed behind the scenes. The transaction has a lot of information: the registration address, the stealth address, and the pump in which the user is registering. Since it is a sending transaction, the user is asked to confirm the send.
If the user confirms, typical transaction operations ensue. If the wallet is locked, the user will be prompted for a password to unlock for this transaction. The user must also approve the fee for the transaction, which is a little higher than typical because about 140 bytes of extra information is placed into a public transaction comment. This information need not be identifying. The user is recommended to make a new stealth address for the purpose of joining the pump group.
It is possible to inspect the transaction to join the pump by double-clicking the transaction in the transaction history tab. Notice that the transaction comment has information that is visible in the bottom panel of the pump page. As mentioned earlier, the recipient address comes from P2P messaging.