<p></p>
<blockquote>
<p><em>This is a Bisq Network project. Please familiarize yourself with the <a href="https://bisq.wiki/Project_management" rel="nofollow">project management process</a>.</em></p>
</blockquote>
<h2>Description</h2>
<p>Following from the success of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="643094326" data-permission-text="Title is private" data-url="https://github.com/bisq-network/projects/issues/37" data-hovercard-type="issue" data-hovercard-url="/bisq-network/projects/issues/37/hovercard" href="https://github.com/bisq-network/projects/issues/37">#37</a>, this project expands the Bisq Explorer backend to serve the Markets API endpoints, and implements a new Bisq Market website frontend to show market data and vital non-technical performance metrics for the Bisq network on 1 screen through a combination of graphs, tables, and text so that users and BSQ stakeholders can easily get a pulse of network activity and health.</p>
<h2>Rationale</h2>
<ul>
<li>
<p>The current Bisq Markets API is again having major issues. Despite running on very powerful hardware, the API is overloaded because of the inefficient PHP architecture which doesn’t use a database and re-parses over 50MB of JSON data for each and every request. The Bisq Explorer backend is written in NodeJS and keeps all Bisq data indexed in RAM for fast serving of API requests.</p>
</li>
<li>
<p>The current bisq.network/markets website is slow and outdated, has old assets that are no longer traded, the graph and pull-down search have various issues, and the data does not update in realtime. The angular frontend architecture that Bisq Explorer uses is very fast and modern and is updated in realtime.</p>
</li>
<li>
<p>The current bisq.network/stats graphs are currently updated by a human at the end of each cycle. The growth team wants to enhance the bisq.network/stats with full Markets and DAO metrics, updated in realtime, with information about all trade events and how the trade volume goes into Bisq trading revenue DAO expenses, issuance, burning, etc.</p>
</li>
</ul>
<h2>Criteria for delivery</h2>
<p>When all tasks below are delivered and running live on the production hostnames, we can consider this project to be delivered.</p>
<h2>Measures of success</h2>
<p>When the following are achieved, we can consider this project to be a success:</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Bisq Markets API is fast again using new implementation</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> The new Bisq Markets website is live on bisq.market</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> The main bisq.network website is using the new markets widgets</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> The growth team is happy with the new realtime Markets/DAO reporting pages</li>
</ul>
<h2>Risks</h2>
<ul>
<li>
<p>The Markets API must be re-implemented exactly as it currently works, so existing integrations do not break. Current documentation is listed at <a href="https://markets.bisq.network/api" rel="nofollow">https://markets.bisq.network/api</a></p>
</li>
<li>
<p>The legacy hostnames that serve the Bisq Markets API include market.bitsquare.io, market.bisq.io, markets.bisq.network, and others. These must be redirected to the new API hostname on bisq.market</p>
</li>
</ul>
<h2>Tasks</h2>
<h3>General</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Re-implement Markets API into a NodeJS backend that parses JSON data and keeps it all in RAM for quick access</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Implement subscriptions for realtime Bisq Markets data updates over websocket connection into NodeJS backend</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Implement new Angular frontend website for bisq.market that displays updated Markets data and graphs updated in realtime</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Implement widgets for statistics that can be embedded into main Bisq website such as BSQ issuance/burnt per cycle, etc.</li>
</ul>
<h3>Front page</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> List all currently traded assets similar to <a href="https://coinmarketcap.com/exchanges/bisq/" rel="nofollow">https://coinmarketcap.com/exchanges/bisq/</a></li>
</ul>
<h3>Asset page</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Display realtime updated graph similar to <a href="https://cryptowat.ch/charts/BISQ:BTC-USD" rel="nofollow">https://cryptowat.ch/charts/BISQ:BTC-USD</a></li>
</ul>
<h3>Cycle voting metrics</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Number of proposals</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Number of votes</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Total voting weight</li>
</ul>
<h3>BSQ issuance, by cycle</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Total issuance, categorized by issuance type (compensation or reimbursement; total issuance should not include refundagent reimbursement)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Total issuance, categorized by team</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Include top 5-10 titles of compensation request line items (ordered by amount, descending) to give a quick idea of what work each team accomplished in the cycle</li>
</ul>
<h3>BSQ burn, by cycle</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Total burn, categorized by type (proof_of_burn should be included but pointed out)</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Total BSQ supply, as it stood at the end of each respective cycle</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Also show trend over time somewhere (ideally BSQ issuance and burn over time could be overlayed on this graph)</li>
</ul>
<h3>Trading statistics, by cycle</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Trading activity broken down by market</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Ordered by number of trades, trading volume, etc</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Overall cycle figures such as average trades per day, average trade size, premium paid, etc.</li>
</ul>
<h3>Proposals voted upon in each DAO cycle</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Will start labeling proposals submitted to DAO for voting on GitHub (e.g., dao-cycle-15-vote) so relevant list can be obtained automatically</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> No need for any details on outcome; simply list titles of proposals with link to corresponding GitHub issue</li>
</ul>
<h3>Miscellaneous</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Repayment status for security incident</li>
</ul>
<h2>Estimates</h2>
<p>Ops: $1000 ~ $2000 USD depending on actual time spent<br>
Growth: $4000 ~ $8000 USD depending on actual time spent<br>
Timeline 1 ~ 2 months</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/projects/issues/41">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNVVJTH5RCC2GJEHC4LR7RHG5ANCNFSM4PX5QCDA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNTI5AAPDRNDX35PV63R7RHG5A5CNFSM4PX5QCDKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4KB7CXLQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/projects/issues/41",
"url": "https://github.com/bisq-network/projects/issues/41",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>