mirror of
https://github.com/status-im/swarms.git
synced 2025-02-10 17:06:22 +00:00
Update 168 paid master (#216)
* 168: Mark as active - Pre MVP scope and dates - swarm participant risks - add notes on running local mailserver - links to basic feasibility check and ghi * 168: Add pilu / gravityblast * Review comments Andy
This commit is contained in:
parent
4c645be6f7
commit
0cab0f35c1
@ -28,6 +28,7 @@
|
|||||||
- nastya
|
- nastya
|
||||||
- nikitalukianov
|
- nikitalukianov
|
||||||
- oskarth
|
- oskarth
|
||||||
|
- pilu
|
||||||
- PombeirP
|
- PombeirP
|
||||||
- rasom
|
- rasom
|
||||||
- rachelhamlin
|
- rachelhamlin
|
||||||
|
@ -1,8 +1,30 @@
|
|||||||
|
---
|
||||||
|
id: 168-paid-master-nodes
|
||||||
|
title: Paid master nodes
|
||||||
|
status: Active
|
||||||
|
created: 2018-04-13
|
||||||
|
lead-contributor: oskarth
|
||||||
|
contributors:
|
||||||
|
- oskarth
|
||||||
|
- rachelhamlin
|
||||||
|
- jpbowen
|
||||||
|
- andytudhope
|
||||||
|
- pilu
|
||||||
|
exit-criteria: yes
|
||||||
|
success-metrics:yes
|
||||||
|
clear-roles: yes
|
||||||
|
future-iterations: yes
|
||||||
|
roles-needed:
|
||||||
|
- Clojure dev
|
||||||
|
- QA
|
||||||
|
- Designer
|
||||||
|
---
|
||||||
|
|
||||||
## Preamble
|
## Preamble
|
||||||
|
|
||||||
Idea: 167-paid-master-node
|
Idea: 168-paid-master-node
|
||||||
Title: Paid master nodes
|
Title: Paid master nodes
|
||||||
Status: Draft
|
Status: In Progress
|
||||||
Created: 2018-04-13
|
Created: 2018-04-13
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
@ -16,17 +38,27 @@ users.
|
|||||||
|
|
||||||
- Lead Contributor: @oskarth
|
- Lead Contributor: @oskarth
|
||||||
- QA: TBD
|
- QA: TBD
|
||||||
- Evaluation: TBD
|
- Evaluation: @oskarth
|
||||||
- Clojure Contributor: TBD
|
- Clojure Contributor: TBD
|
||||||
- Go Contributor: TBD
|
- Go Contributor: @pilu
|
||||||
- PM: @rachelhamlin
|
- PM: @rachelhamlin
|
||||||
- UX(R): @jpbowen
|
- UX(R): @jpbowen
|
||||||
- Designer: TBD
|
- Designer: TBD
|
||||||
- Community: @andytudhope
|
- Community: @andytudhope
|
||||||
|
|
||||||
|
Risk:
|
||||||
|
- Not enough Go and Clojure resources available
|
||||||
|
|
||||||
|
Counteract:
|
||||||
|
- Create clear issues as bounties
|
||||||
|
- Oskar start initial spiking out, be OK with slow progress
|
||||||
|
- Proactively reach out to individual devs to try to free up resources
|
||||||
|
|
||||||
## Product Overview
|
## Product Overview
|
||||||
|
|
||||||
This idea takes of where https://github.com/status-im/ideas/blob/master/ideas/1-offline-inboxing.md ended. It provides an SNT payment layer for usage of master nodes.
|
This idea takes off where
|
||||||
|
https://github.com/status-im/ideas/blob/master/ideas/1-offline-inboxing.md
|
||||||
|
ended. It provides an SNT payment layer for usage of master nodes.
|
||||||
|
|
||||||
Users want basic services such as offline inboxing to just work, while at the
|
Users want basic services such as offline inboxing to just work, while at the
|
||||||
same time paying for the resources they are using, as opposed to being a product
|
same time paying for the resources they are using, as opposed to being a product
|
||||||
@ -83,13 +115,19 @@ the Apple store.
|
|||||||
Mail server needs to be able to process this transaction and have logic for
|
Mail server needs to be able to process this transaction and have logic for
|
||||||
whitelisting this user's enode for some period of time.
|
whitelisting this user's enode for some period of time.
|
||||||
|
|
||||||
How re-newal will happen is not specified yet.
|
How renewal will happen is not specified yet.
|
||||||
|
|
||||||
> Comment from review: May be out of scope for this idea but perhaps we'll want to experiment with different payment models for time - e.g. Alice pays until she runs out of SNT OR N offline messages OR set period of time.
|
> Comment from review: May be out of scope for this idea but perhaps we'll want
|
||||||
|
> to experiment with different payment models for time - e.g. Alice pays until
|
||||||
|
> she runs out of SNT OR N offline messages OR set period of time.
|
||||||
|
|
||||||
Solving the initial user stories don't require any proof of message delivery or
|
Solving the initial user stories doesn't require any proof of message delivery
|
||||||
quality of service. Reputation of specific mail servers thus happens completely
|
or quality of service.
|
||||||
outside of the app, e.g. through Riot, Reddit, etc.
|
|
||||||
|
How reputable a given mail server is will thus be communicated outside of the
|
||||||
|
app, at least initially. That is, instead of having the equivalent of an App
|
||||||
|
Store rating system, or seed ratio on a Torrent site, this can be communicated
|
||||||
|
through other means. For example: Riot, Reddit, public status channels, etc.
|
||||||
|
|
||||||
#### Note on Status Desktop
|
#### Note on Status Desktop
|
||||||
|
|
||||||
@ -113,9 +151,30 @@ technical terms on status-go side.
|
|||||||
|
|
||||||
(Lack of consensus on this point: Possibly onboarding SNT give-away logistics.)
|
(Lack of consensus on this point: Possibly onboarding SNT give-away logistics.)
|
||||||
|
|
||||||
|
### Pre MVP - initial investigation and spec
|
||||||
|
|
||||||
|
Goal Date: 2018-05-07
|
||||||
|
|
||||||
|
Description:
|
||||||
|
- [ ] Recruit additional roles: Go dev, Designer, Clojure dev, QA
|
||||||
|
- [ ] Spec out rough UX(R) track
|
||||||
|
- [ ] Spike out technical requirements:
|
||||||
|
(a) deny requests to mail server as a function of peer and envelope
|
||||||
|
(b) send STT payments and get basic proof
|
||||||
|
- [ ] Create issues (and bounties) necessary for MVP
|
||||||
|
- [ ] Communicate proof of payment / accept/deny thinking at kick off call
|
||||||
|
|
||||||
|
Probably not enough time: (- [ ] Understand changes to requestMessage envelope required)
|
||||||
|
|
||||||
|
Initial investigation to understand how to scope MVP (WIP):
|
||||||
|
- https://github.com/status-im/status-react/commit/2a1678ef8724702cee547fdc3ba1f5f03681714a
|
||||||
|
- https://github.com/status-im/status-go/commit/a4820285bdb16789477efc06d832bfbd51753ca4
|
||||||
|
- [Local mailserver HOWTO](local-mailserver.md)
|
||||||
|
|
||||||
|
Also see https://github.com/status-im/status-react/issues/4003 (more to come)
|
||||||
|
|
||||||
### Minimum Viable Product
|
### Minimum Viable Product
|
||||||
<!-- Mandatory, completes the Idea in the fastest route possible, can be hacky, needed to feel progress. See https://imgur.com/a/HVlw3 -->
|
Goal Date: 2018-05-21
|
||||||
Goal Date: TBD - May 1 + 2w
|
|
||||||
|
|
||||||
Description: Spike out most basic proof of concept possible for payment / service on or off in Clojure and Go, using SNT test token.
|
Description: Spike out most basic proof of concept possible for payment / service on or off in Clojure and Go, using SNT test token.
|
||||||
|
|
||||||
@ -124,11 +183,11 @@ Separate tracks:
|
|||||||
- UX(R) / design
|
- UX(R) / design
|
||||||
- Go dealing with app protocol / payment
|
- Go dealing with app protocol / payment
|
||||||
|
|
||||||
Goal Date: <!-- Date for evaluation in ISO 8601 (yyyy-mm-dd) format -->
|
Goal Date:
|
||||||
|
|
||||||
Description: <!-- Description of Deliverables-->
|
Description:
|
||||||
|
|
||||||
Testing Days required: <!-- Days required at the end of development for testing -->
|
Testing Days required:
|
||||||
|
|
||||||
## Success Metrics
|
## Success Metrics
|
||||||
|
|
49
ideas/168-paid-master-nodes/local-mailserver.md
Normal file
49
ideas/168-paid-master-nodes/local-mailserver.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# How to run and use mail server locally
|
||||||
|
|
||||||
|
## status-go
|
||||||
|
|
||||||
|
Just some notes:
|
||||||
|
|
||||||
|
```
|
||||||
|
make statusgo
|
||||||
|
./build/bin/statusd -shh -datadir=paid-data-mailserver -shh.mailserver -shh.passwordfile=wnode-data-mailserver/password.txt -listenaddr=127.0.0.1:30303 -log=DEBUG -ipc
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify peers are connected separately:
|
||||||
|
|
||||||
|
```
|
||||||
|
geth attach ~/git/status-go/paid-data-mailserver/geth.ipc
|
||||||
|
admin.peers
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clojure side
|
||||||
|
|
||||||
|
Add local mail server to `constants.cljs` where address is RLPx in print out above, e.g:
|
||||||
|
|
||||||
|
```
|
||||||
|
"paid" {:id "paid"
|
||||||
|
:name "Status testnet mailserver paid, experimental"
|
||||||
|
:address
|
||||||
|
"enode://9f0a55f116aedb40d4036d9a385d505d9c183fd708ef1aa2f883895df97864f758eee911c26c86732ae13a57664a076de2527189f983ee24dda2a4cb5f5db777@127.0.0.1:30303"}
|
||||||
|
```
|
||||||
|
|
||||||
|
Connect to it, might need to switch networks and login/logout etc to trigger
|
||||||
|
requestMessages`. Make sure networks match. Check logs for `offline inbox` to
|
||||||
|
see flow. Can switch offline server in advanced settings.
|
||||||
|
|
||||||
|
If there are issues with peers, and mail server has peers, then going into CLJS repl and:
|
||||||
|
|
||||||
|
```
|
||||||
|
(require 'status-im.transport.inbox)
|
||||||
|
(status-im.transport.inbox/add-peer "enode://987c40d5761678f030d80de13a2f8a0150da651e5d2c430b96e4f8c2c544389918c7bd820d2d6a5610afb96dcedf8ebb0b941859a0cdbd7dddbbd13994dcbe52@[::]:30303" println println)
|
||||||
|
(status-im.transport.inbox/fetch-peers println println)
|
||||||
|
```
|
||||||
|
|
||||||
|
can help with debugging.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
Note that this above flow only modifies the 'server' side of mail server and UI
|
||||||
|
side of client. If you want to modify status-go node on client side you need to
|
||||||
|
make sure status-go is built and linked properly in the app. See
|
||||||
|
https://github.com/status-im/status-react/blob/develop/scripts/bundle-status-go.sh
|
Loading…
x
Reference in New Issue
Block a user