Merge branch 'master' into master

This commit is contained in:
Jarrad 2017-03-05 19:20:33 +01:00 committed by GitHub
commit 1a6eb13a09
5 changed files with 46 additions and 26 deletions

View File

@ -24,7 +24,7 @@ This guide is written with OS X in mind.
# or # or
$ git clone git@github.com:status-im/status-react.git -b develop && cd status-react $ git clone git@github.com:status-im/status-react.git -b develop && cd status-react
$ lein deps && npm install && ./re-natal deps $ lein deps && npm install && ./re-natal deps && lein generate-externs
$ mvn -f modules/react-native-status/ios/RCTStatus dependency:unpack $ mvn -f modules/react-native-status/ios/RCTStatus dependency:unpack
$ cd ios && pod install && cd .. $ cd ios && pod install && cd ..

View File

@ -1,16 +1,16 @@
# Community Outreach & Marketing # Community Outreach & Marketing
Any communications efforts are welcomed, and it's necessary that any contributions that represent Status are closely aligned of our [Mission & Core Values](../getting-started/mission-and-core-values.md). Brand messaging needs to be consistent, honest, transparant and accurately reflect what the project aims to achieve. Any communications efforts are welcomed, and it's necessary that any contributions that represent Status are closely aligned of our [Mission & Core Values](../getting-started/mission-and-core-values.md). Brand messaging needs to be consistent, honest, transparent and accurately reflect what the project aims to achieve.
Status is not yet ready for mass-adoption, and a clearly defined a user acquisition strategy will be outlined here at a later date. For the time being, contributors interested helping with community outreach should focus on helping to produce meaningful content and spreading the word amongst other blockchain enthusiasts. Status is not yet ready for mass-adoption, and a clearly defined a user acquisition strategy will be outlined here at a later date. For the time being, contributors interested helping with community outreach should focus on helping to produce meaningful content and spreading the word amongst other blockchain enthusiasts. Some practical tips and suggestions on how you can take part in and help to strengthen our community can be found at the [Growing our Community](../community/how-to-grow-our-community.md) page.
## Get Involved ## Get Involved
Join the [Status Slack](http://slack.status.im) and head over to the **#outreach** channel to share what you had in mind, and bounce ideas. Join the [Status Slack](http://slack.status.im) and head over to the **#community-building** channel to share what you had in mind, and bounce ideas.
## Guest Posts ## Guest Posts
Enjoy writing about Ethereum? Come write an article that will be featured on the Status blog. Enjoy writing about Ethereum? Come write an article that will be featured on the [Status blog](https://blog.status.im).
## Interviews ## Interviews
Contributed to Status or the Ethereum ecosystem? Help us spread the word by being part of an interviews series published on the blog and across social media. Contributed to Status or the Ethereum ecosystem? Help us spread the word by being part of an interviews series published on the [blog](https://blog.status.im) and across social media platforms, like [Twitter](https://twitter.com/ethstatus), [Reddit](https://www.reddit.com/r/statusim/) and [Facebook](https://www.facebook.com/ethstatus).
## Quality Assurance ## Quality Assurance
A brand is a delicate thing, and any content contributions require acceptance from within our community before publication. Text content must be stylistically and structually well-produced with no grammatical errors. We'd be happy to help with editing and proof-reading :) A brand is a delicate thing, and any content contributions require acceptance from within our community before publication. Text content must be stylistically and structually well-produced with no grammatical errors. We'd be happy to help with editing and proof-reading :)

View File

@ -11,7 +11,9 @@ Please try to be as descripive as possible.
To run the tests: To run the tests:
1. Install appium: run `npm install -g appium` 1. Install appium: run `npm install -g appium`
2. Start application on emulator or real device ([more details here](https://wiki.status.im/contributing/development/building-status/#build-and-test)) 2. Start application on emulator or real device ([more details here](https://wiki.status.im/contributing/development/building-status/#build-and-test)).
**Important:** use the _android-test_ build (run `BUILD_IDS="android-test" lein repl`). Testing in iOS is not supported yet.
3. Start appium server in new tab: run `appium --session-override` 3. Start appium server in new tab: run `appium --session-override`
4. Run `lein test` 4. Run `lein test`

View File

@ -26,7 +26,7 @@ To achieve our mission we intend to employ a strategy that contains three core c
### Technology ### Technology
- The Status app itself is (currently) targeted at mobile devices running Android and iOS, and is built using Clojure.js, React and Golang. - Status is built using ClojureScript, React and Golang. It includes a geth node on your device that uses the Light Ethereum Subprotocol (LES) to validate and sync with the blockchain. It uses Whisper (shh) as its messaging client and aims to integrate Swarm for storage.
- To sync with and validate the ethereum blockchain on a mobile device, Status deploys a geth node using the Light Ethereum Subprotocol (LES). - To sync with and validate the ethereum blockchain on a mobile device, Status deploys a geth node using the Light Ethereum Subprotocol (LES).

View File

@ -11,31 +11,49 @@ This anatomy establishes the different sections of the chat interface and establ
![](img/chat-anatomy.png) ![](img/chat-anatomy.png)
## Commands ## Accessing a bot
!init (hidden) `/global` (hidden)
- if it exists run on open chat session, only in 1-to-1 chats. Universal command for the bot, allows the bot command to be referenced in any chat via `@botname`. If this exists it should appear in the command list as another section at the bottom.
!help
!settings
### Explicitly calling commands `/init` (hidden)
Run on open chat session, only in 1-to-1 chats.
DApps are namespaced with @dappname!command, which can be useful if same commands used by multiple bots are available, alternatively these can be used for commands when bot is not actually in the chat, ie @wallet!send `/<command>` bots can register a command handler of any ASCII title, which then Status repeats
## Custom Keyboards `@botname/command` if there is multiple bots in a chat context, then the `@botname` can be used to make the distinction (or alternatively a suggestions/commands list should appear to help with the distinction)
Parameters use custom keyboards (instead of types, we adapt our types to be keyboards themselves?) `Bot Message` a bot can send a message that can only be read by another instance of itself in chat history. This message can send markup to draw and contain data. It is activated by a user tapping on it.
Make our emoji/sticker market with this, otherwise accessible through commands `A message parsed from chat history` on 1-to-1 chats, any message the user send can be read by the bot and can activate code via `status.on('chat-update', function () { ... } );` handler.
ie !init command with param that opens up a config
## Messages ## Bot Messages
- subscription to message feed A Bot Message can contain it's own markup and a data payload, this message can be transmitted to the chat context. If it is interactable then the interaction (what we currently call response handler) handles the message when tapped.
- api for sending messages, and setting things like "typing"
- not available in group **If the user does not have the bot installed, then we display a custom keyboard that shows the bot name, its reviews/ reputation and a "Install / Add to Contacts" button, which the user can either cancel or install and continue with response flow.**
## Command Handlers
Once a command handler is invoked it is passed the current text / data payload of the message, and is required to return the paramaters (and their placeholder information). The return of the handler must include
- `markup` or a `status component(data)` for the suggestions area
- `markup` or a `status component(data)` for the the keyboard
- an error object
- the revised text / data payload.
## Privacy ## Privacy
- by default does not receive all messages in group chat - a bot can only be interacted with via commands or messages via in 1-to-1 chats
- only commands and in 1-to-1 - a bot can only see messages from itself and the current user in group chats.
## Deployment & Testing
Console should have some `/debug` mode that allows the user to plugin their phone in and hot-load javascript/webpage to make testing web-based dapps or bots easily from desktop. Ideally it should have integration with [Truffle](http://truffleframework.com/) & [Embark](https://github.com/iurimatias/embark-framework) and pay respect to [EIP190](https://github.com/ethereum/EIPs/issues/190)
## Open Questions
Is there an issue of resources and conservation around Otto VM jails?
Should it runs per dapp per chat context? or per DApp and then an object in each per chat context?