2017-05-21 16:43:38 +08:00

298 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://wiki.status.im/proposals/discover/">
<link rel="shortcut icon" href="../../img/favicon.ico">
<title>Discover (WIP) - Status Wiki</title>
<link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../../css/font-awesome-4.5.0.css" rel="stylesheet">
<link href="../../css/base.css" rel="stylesheet">
<link rel="stylesheet" href="../../css/highlight.css">
<link rel="stylesheet" href="../../css/custom.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script src="../../js/jquery-1.10.2.min.js"></script>
<script src="../../js/bootstrap-3.0.3.min.js"></script>
<script src="../../js/highlight.pack.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-79146816-1', 'wiki.status.im');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../.."></a>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav">
<li >
<a href="../..">Welcome</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Started <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../../getting-started/mission-and-core-values/">Mission & Core Values</a>
</li>
<li >
<a href="../../getting-started/user-guide/">User Guide</a>
</li>
<li >
<a href="../../getting-started/faq/">FAQ</a>
</li>
<li >
<a href="../../getting-started/code-of-conduct/">Code of Conduct</a>
</li>
<li >
<a href="../../contributing/development/introduction/">Developer Introduction</a>
</li>
<li >
<a href="../../community/how-to-grow-our-community/">Grow our Community</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-submenu">
<a href="#">Developers</a>
<ul class="dropdown-menu">
<li >
<a href="../../contributing/development/introduction/">Introduction</a>
</li>
<li >
<a href="../../contributing/development/building-status/">Building Status</a>
</li>
<li >
<a href="../../contributing/development/adding-dapps/">Adding DApps</a>
</li>
</ul>
</li>
<li >
<a href="../../contributing/design-guidelines/">Design Guidelines</a>
</li>
<li >
<a href="../../contributing/testing-and-feedback/">Testing & Feedback</a>
</li>
<li >
<a href="../../contributing/documenting/">Documenting</a>
</li>
<li >
<a href="../../contributing/outreach/">Outreach</a>
</li>
<li >
<a href="../../contributing/translations/">Translations</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../../community/how-to-grow-our-community/">Grow our Community</a>
</li>
<li >
<a href="../../community/slack/">Slack</a>
</li>
<li >
<a href="../../community/newsletter/">Newsletter</a>
</li>
<li >
<a href="../../community/blog/">Blog</a>
</li>
<li >
<a href="../../community/tell-a-friend/">Tell a Friend</a>
</li>
</ul>
</li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Proposals <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../commiteth/">Commiteth (WIP)</a>
</li>
<li >
<a href="../contact-sharing/">Contact Sharing (WIP)</a>
</li>
<li >
<a href="../chat-api/">Chat API (WIP)</a>
</li>
<li class="active">
<a href="./">Discover (WIP)</a>
</li>
<li >
<a href="../messaging/">Status Messaging (WIP)</a>
</li>
<li >
<a href="../erc20-exchange/">Exchange (WIP)</a>
</li>
<li >
<a href="../sticker-market/">Sticker Market (WIP)</a>
</li>
<li >
<a href="../visual-programming/">Visual Programming (WIP)</a>
</li>
<li >
<a href="../moments/">Moments (WIP)</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">License <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../../licenses/mpl2/">MPL2</a>
</li>
<li >
<a href="../../licenses/lgpl-v3.0-static/">LGPLv3-static</a>
</li>
</ul>
</li>
<li class="repo-link">
<a href="https://github.com/status-im/wiki.status.im/" target="_blank">
<i class="fa fa-github"></i>GitHub
</a>
</li>
<li>
<a href="https://hackathon.status.im" target="_blank">Hackathon</a>
</li>
<li>
<a href="https://docs.status.im" target="_blank">Docs</a>
</li>
<li class="search-link">
<a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
<i class="fa fa-search"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
<li class="main active"><a href="#discover">Discover</a></li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<div style="text-align: right;">
<a href="https://github.com/status-im/wiki.status.im/edit/master/docs/proposals/discover.md">Edit this page</a>
</div>
<h1 id="discover">Discover</h1>
<p>This document describes the Discover feature of Status. Ethereum is its community, and with Discover we want to connect other Ethereum users with other Ethereum users - to trade and exchange ideas. Ultimately this will reduce transaction costs and increase the utility of ETH.</p>
<p>Discover is done through a users Status (hence the application name). This status is a 140 char sub-headline to a users profile which can be seen on <a href="https://zpl.io/22nSfB">my profile</a>, <a href="https://zpl.io/CFBa8">user profile</a> and <a href="https://zpl.io/Z1p9XlV">discover</a> screens.</p>
<p>A status is private and not shared with anyone except their immediate contacts, unless a <strong>#hashtag</strong> is introduced. These #hashtags are locally searchable on the discover screen.</p>
<p>The Discover application protocol is built ontop of Whisper, possibly utilising our messaging protocol and is implemented in <a href="https://github.com/status-im/status-lib/tree/master/src/cljs/status_im/protocol">status-im/status-lib</a></p>
<p>Periodically the client should request from it's contacts, a package of statuses that is an aggregate compilation of discoverable statuses (created using the specifications below), this package should contain no more than 100-500 statuses and the period in which the client requests the package is after when the user is back online and/or after waiting X hours has elapsed. Whisper penalizes larger payloads so we may have to chunk this. <code>140chars × 4bytes (utf-8) × 100 contacts = 54kb</code></p>
<p>The 100 contacts the user decides to return is weighted by;
- the newest available information (latest status from that user),
- the most seen contact statuses by other contacts. (that user who has seen the same contact status from all his contacts)
- and actual interactions with contacts, favor contacts that the user has actually messaged themselves.
- if contact is online</p>
<p>The Discover screen then takes this aggregate search space
<code>100-500 statuses × users in contact list</code> and organise them by #hashtags, the hashtags that have more than X contacts are put into the carousel under that #hastag category.</p>
<p>Below it the statuses are listed by most recent.</p>
<p>On tapping one of these messages a chat session is attempted with that user.</p>
<p>Each user should cache no more than 1000 statuses</p></div>
</div>
<footer class="col-md-12">
<hr>
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p>
</footer>
<script>var base_url = '../..';</script>
<script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script>
<script src="../../js/base.js"></script><div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="exampleModalLabel">Search</h4>
</div>
<div class="modal-body">
<p>
From here you can search these documents. Enter
your search terms below.
</p>
<form role="form">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query">
</div>
</form>
<div id="mkdocs-search-results"></div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</body>
</html>