mirror of
https://github.com/status-im/swarms.git
synced 2025-02-03 05:45:05 +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
|
||||
- nikitalukianov
|
||||
- oskarth
|
||||
- pilu
|
||||
- PombeirP
|
||||
- rasom
|
||||
- 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
|
||||
|
||||
Idea: 167-paid-master-node
|
||||
Idea: 168-paid-master-node
|
||||
Title: Paid master nodes
|
||||
Status: Draft
|
||||
Status: In Progress
|
||||
Created: 2018-04-13
|
||||
|
||||
## Summary
|
||||
@ -16,17 +38,27 @@ users.
|
||||
|
||||
- Lead Contributor: @oskarth
|
||||
- QA: TBD
|
||||
- Evaluation: TBD
|
||||
- Evaluation: @oskarth
|
||||
- Clojure Contributor: TBD
|
||||
- Go Contributor: TBD
|
||||
- Go Contributor: @pilu
|
||||
- PM: @rachelhamlin
|
||||
- UX(R): @jpbowen
|
||||
- Designer: TBD
|
||||
- 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
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
quality of service. Reputation of specific mail servers thus happens completely
|
||||
outside of the app, e.g. through Riot, Reddit, etc.
|
||||
Solving the initial user stories doesn't require any proof of message delivery
|
||||
or quality of service.
|
||||
|
||||
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
|
||||
|
||||
@ -113,9 +151,30 @@ technical terms on status-go side.
|
||||
|
||||
(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
|
||||
<!-- Mandatory, completes the Idea in the fastest route possible, can be hacky, needed to feel progress. See https://imgur.com/a/HVlw3 -->
|
||||
Goal Date: TBD - May 1 + 2w
|
||||
Goal Date: 2018-05-21
|
||||
|
||||
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
|
||||
- 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
|
||||
|
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