Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Propose Transfer Hotspot #42

Merged
merged 4 commits into from
Sep 29, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions 0099-transfer-hotspot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# HIPxx: Transfer Hotspot

- Start Date: 2020-09-22
- Original HIP PR: [#42](https://github.com/helium/HIP/pull/42)
- Author: [@abhay](https://github.com/abhay)
abhay marked this conversation as resolved.
Show resolved Hide resolved
- HIP Number: `TODO`
- Tracking Issue: `TODO`

# Summary
[summary]: #summary

This proposal introduces a new type of transaction to the Helium blockchain called `transfer_gateway_v1`. This transaction will be an atomic transfer of an onboarded Hotspot / gateway from one owner to another. This transaction can have an optional amount of HNT associated.

# Motivation
[motivation]: #motivation

Although new RAK Hotspot Miners coming online and future efforts towards other gateways are underway, we can enable existing hotspot owners to redirect coverage resources to hosts who are willing to provide coverage in underutilized areas.

Over 7000 hotspots (at the time of writing) have come online since launching the Helium network. They have been placed in over 1500 cities. Some cities like Modesto, Brooklyn, New York, and San Francisco have over 250 hotspots deployed over a relatively small area. Other notable cities like New Orleans or Knoxville, TN are significantly under covered by existing hotspots.

# Stakeholders
[stakeholders]: #stakeholders

- Any Helium hotspot owner who has deployed at least one hotspot.
- The Helium blockchain engineering team.

# Detailed Explanation
[detailed-explanation]: #detailed-explanation

## Implement a new transaction, `transfer_gateway_v1`

This new transaction would require two parties to sign the transaction in order to update the gateway's owner in the ledger.

### Steps

1. Current owner creates a partially signed transaction with an optional HNT amount that is required to complete the transaction.
2. Current owner sends the partially signed transaction to the receiving owner.
3. Recipient signs the transaction and pays the DC fee to submit the transaction to the blockchain.
4. If the receiving account contains sufficient HNT balance as requested by the current owner and contains enough HNT to burn into DCs for the transaction, the transaction is accepted and the gateway's owner is updated in the ledger.
5. The hotspot no longer appears in the sender's hotspot list and now appears in the recipient's hotspot list.

## Implement the transaction in the helium-wallet client

`TODO`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@madninja and I talked about this today and we're not sure we should go into great detail here - the helium-wallet already supports "exporting" a partially completed transaction as either a QR code format or a Base64 encoded text blob - either of these formats would be useful for completing the transaction.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's probably enough information exactly as described. Want to add it or me?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thanks

abhay marked this conversation as resolved.
Show resolved Hide resolved

## Implement the transfer UI in the Helium app

Not considered. The Helium blockchain team will implement the transaction and implementation via the command line client. Future work on integrating this transfer into the Helium mobile app will be proritized but is out of scope of this HIP.

# Drawbacks
[drawbacks]: #drawbacks

Besides some additional complexity on ownership changing for a Hotspot across blocks, no additional downside was characterized while developing his proposal.

# Rationale and Alternatives
[alternatives]: #rationale-and-alternatives

We believe this approach will enable owners to transfers their Hotspots to other prospective owners. Other alternatives have been considered including a multi-transaction series which may be too complex for implementation and maintainence. Ultimately, we're looking to implement a simple solution that will enable an frequently requested feature.

Other alternatives that were considered including just allowing a Hotspot to be disassociated from an account. There are a few concerns with this approach which included accounting for rewards between this action and a future association to another account. It also increases complexity as the Hotspot would need to have another `add_gateway` transaction issued at a later date rather than a single swap transaction as described here.

Another limitation that was considered was that the receiving owner would have to have a Helium wallet before accepting a Hotspot via `transfer_gateway_v1`. Although this increases friction of transfers, it was deemed not a significant cost give that in some cases, the receipient would need to pay an amount of HNT as requested by the sender.

# Deployment Impact
[deployment-impact]: #deployment-impact

We expect that some Helium hotspots will be transfered to new owners and perhaps may move locations to provide more favorable coverage.

# Success Metrics
[success-metrics]: #success-metrics

The Helium blockchain team will not be explicitly tracking success metrics for this transaction type addition but we expect that coverage will be improved in underserved areas as hotspots become transferrable.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ If you have questions or feedback, please ask in [#helium-improvement-proposals
| 10 | [Proportional reward scheme for data transfers](https://github.com/helium/HIP/blob/master/0010-usage-based-data-transfer-rewards.md) | Deployed |
| 11 | [Amendment to proportional data transfer reward scheme](https://github.com/helium/HIP/blob/master/0011-usage-based-rewards-structure.md) | [In Discussion](https://github.com/helium/HIP/issues/34) |
| 12 | [Remote location assertion](https://github.com/helium/HIP/blob/master/0012-remote-location-assert.md) | [In Discussion](https://github.com/helium/HIP/issues/39) |
| 13 | [Transfer hotspot](https://github.com/helium/HIP/blob/master/0013-transfer-hotspot.md) | [Draft](https://github.com/helium/HIP/issues) |