With recent updates to the server and machine image, the issue of dropped transactions due to poor connectivity or machine error has been resolved.
Previously, if the machine lost connectivity to the local network during the time in which it attempted to send a user's purchase, the machine was unable to fulfill the transaction and resulted in a 'Sorry, we're down' message. This required manual reconciling by the operator.
With machine version 0.5.8 and up, if it's unable to send bitcoins, the machine will present the 'We got this' screen informing the user that it will be sent upon regaining connection.
If used in conjunction with server version 2.2.5 and up, the backend will record the bill amounts as they're inserted into the machine. A dropped transaction will be split into two batches: the first containing the balance of bitcoins for which the server has a record, with the rest being sent when the machine regains connectivity.
Updating the machine
Please contact email@example.com to have your machine updated to the latest version. Once updated, it will resend dropped transactions whenever connectivity is regained.
The machine version is backwards compatible with prior server versions.
Updating the server
Once the machine has been updated, you may then upgrade the server in order to support batch sending.
Note: This server version is not backwards-compatible with machine versions below 0.5.14. If paired with a prior machine image, it will accept bills, but not dispense bitcoin. Thus, ensure all machines paired to the server are version 0.5.14 or above.
To upgrade run each of the following four commands individually:
rm /usr/local/bin/ssu-raqia npm i -g lamassu-server migrate cd /usr/local/lib/node_modules/lamassu-server/ migrate restart lamassu-server LAMASSU_ENV=debug
After it's complete, you may verify that all went well by checking the server logs for the presence of any errors:
tail -30 /var/log/upstart/lamassu-server.log
Viewing transaction logs
To reconcile any dropped transaction claims, you can export the machine transactions using the command lamassu-transactions-csv. (For information on configuring, please see 'Exporting transaction logs'.)
When the 'We got this' screen is presented to a user, a session ID is generated and encoded in the on-screen QR code. This ID (e.g., b99317f2-8deb-4657-84a4-5ee58f9c3559) corresponds to the 'session_id' value in the exported transaction spreadsheet.
For transactions in which the dropped transaction was batched, under the 'stage' column, you'll see a partial_request followed immediately by a partial_send, then once the machine has regained connectivity, you'll see a second group of the same containing the balance inserted after the connection dropped.
For transactions where all bills were inserted before the connection drop, you'll see a partial_request and partial_send, though since this was the full balance, you will not expect to see a second pair.