June 2017 - Dash Core Team Monthly Report
Dear Community members,
It is my pleasure to give you a status report of the Dash Core Team activities. Below, you will find our report covering activities performed through the end of May, grouped by the four strategic areas of focus for 2017.
Software Development
- Dash core wallet - version 12.x (lead developer: Udjin M6)
- Dash Evolution (lead developer: Nathan Marley; PM: Luba S. (Unlicensed))
Backend Pre-Alpha version was completed in time. Alpha version development started at the beginning of June and will be finished at the middle of August.
DashDrive Pre-Alpha version was started (will be delivered in July).
DashPay Android installation for internal team review was delivered, Chrome and iOS installation building was started.
We continue to improve project planning: internal roadmap was updated, release plan for Evolution Frontend team was added.
Evolution Project Charter and with high-level risks definition was created and reviewed by Robert.
Description and requirements list for Backend Pre-Alpha and Alpha were added to Evolution Confluence space.
- Dash Evolution Backend (lead developer: Alex Werner (Unlicensed); PM: Luba S. (Unlicensed))
Completed researches:
Insight-API(1) : Check the possibility to received ballot and vote from the Network.
Find the most efficient way (proto, class, functional programming) to run DAPI. Research results were described in ‘DAPI Architecture Report’.
Getting more insight on SubTX(2) Protocol and evaluate how much we could use that as a solution for our initial seeding process. Research results were described in ‘Seeding Evo initial SubTx Costs from the Network’ and ‘DIP 002: DASH EVOLUTION Subscription Transactions’ documents.
Review ZMQ(3) POC(4) and look into other messaging alternatives (IPFS, Orbit, DeepStream).
DAPI(5): Research on invite transactions.
Mempool: Research on best way to save data.
DashTrust(6): Eigentrust on Dash.
OrbitDB: Bootstrap to external OrbitDB instances to sync DB's, Bootstrapping with IPFS binaries working but using js-ipfs ongoing, js-ipfs - bootstrap to external nodes to sync published data.
Networking(bcoin, dashcore, socketio, zmq). Created POC with Socket.io, with ZMQ (exclusive pair), high-level lookup on networking between pairs (ZMQ, Socket.io, P2P, bitcoin, bcoin..) was done. Networking bootstrap process of bcoin was setuped. Research results were described in: ‘Networking Review’.
DAPI - Network - P2P(7) Setup & Seeding:
Setup of working branch for networking in DAPI was done.
Setup of basic barebone from bcoin codebase + setup test cases (commits) + template for node in mempool was completed.
ZMQ demo setup(including pairing and broadcasting) was done.
Implemented update functionality: a node receiving an identity update the node data in mempool and broadcast the update across network.
ZMQ:
POC was created. It supports all major minimal required features (connecting, propagating messages on network, new nodes auto syncing with network state, handling dropped nodes).
Handled connections to dropped nodes by binding to new live nodes.
Implemented new method of finding open ports within defined range.
Created service which keeps tracks of active nodes (in production this will be obtained from DashDrive).
Added ability to run ZMQ on external machines/IP's.
ZMQ POC was tested on multiple machines. Benchmarks/stress tests were done, some bottlenecks were identified.
DAPI-SDK(8) code refactoring was done.
Preparing of Evo Backend for DashPay(9) use:
Implemented several missing Explorer routes.
Refactored and tested BWS(10) code.
Prepared README.md of DAPI-SDK for DashPay frontend team.
InstaSend implementation to BWS was completed. Added upstream modification in: bitcore-mnemonic, bitcore-payment-protocol, bitcore-wallet-client.
Insight-API: A bug on /tx/send was fixed.
A compilation of many backend researches + work (POCs) was integrated inside a DAPI Github branch.
Dash Evolution DashDrive (lead developer: Nathan Marley; PM: Luba S. (Unlicensed))
Researches:
Postgres JSON capabilities.
Mnesia (Erlang distributed db).
Using IPFS(11) for DashDrive.
Quorum(12) for Dashdrive data verification and meeting breakdown.
Storage Backends exploring: should we use a Graph database? What are the benefits of Graph vs other NoSQL DBs and traditional relational DBMS'es?
Orbit-DB for metadata synchronization: (OrbitDb/NodeJS ipfs-api POC dockerized and developed, installed and tested orbit-db key value store, developed OrbitDB index, tested data writes).
The first version of DashDrive data flow/sync design was created.
Quorum interaction design started.
Testing of DashDrive POC was started.
Dockerized Insight-Dash, built out a VPC, subnets for hosting insight.
DashDrive repository was cleaned up, outstanding PRs were merged.
Implementation of DashDrive IPFS event adds:
Implemented event writes (adds to IPFS, pins, indexing).
Discovered issue w/connections using IPFS + docker-compose.
IPFS mockup testing was done.
Created mock events for loading DashDrive.
A proposal for testing Sentinel proposal pruning was imported to testnet.
DashDrive tests were cleaned up use py.test w/mock data.
- Dash Evolution Frontend (lead developer: Chuck Williams (Unlicensed); PM: Luba S. (Unlicensed))
IBN(contractors team) made connections from the front-end of DashPay Wallet to the backend DAPI.
DashPay Android installation for internal team review was delivered.
Work on Chrome and iOS DashPay installation was started.
Dashpay Android installation was updated: removed conflicts with existing installs.
Evolution & DashPay wallets are officially "split" projects. IBN & Dash will share resources for both projects, but IBN will mainly focus on DashPay Development with support to Evolution Design & Dash team will mainly focus on Evolution development with support to DashPay development.
Account Setup UX Flow was updated after review.
New full time frontend developer was assigned to Evolution - Joshua.
- Dash wallet for iOS - updated features (lead developer: @QuantumExplorer)
back in Review on iTunes
HBPay Android Based POS with DASH Payment Processor (TestNet Open)
- Mycelium wallet updates - re-launch
Business Development
- Dash - RUB now on https://exmo.com
Dash now trading on (African Crypto Exchange): https://www.altcointrader.co.za/dash
Dash launched on CoinBR - Brasil
- Dash - Blockcypher partnership work together to attract new applications to the Dash network.
- Dash starts conversations with Korean and Japanese exchanges.
Project Organization
- Law firm selected for general counsel (e.g., reviewing contracts, drafting contractor agreements, etc)
- Hired Director of Human Resources
- Initiated recruiting for QA/testing and project management roles in United States and Europe
Research on physical office locations started
- Internal Service Desk alpha release
- Formalization of Evolution development (work on project charter and documentation)
Marketing and Communication
OFFICIAL DASH ROADMAP - Version 2.1.1 // Delivery Milestones: https://github.com/dashpay/dash-roadmap/blob/master/README.md
Interview with Erik Vorhees:
BitCart Dumps Bitcoin, Goes Dash-Only : https://cointelegraph.com/news/bitcart-ditches-bitcoin-for-dash-user-uptake-soars
Amanda's #FirstDashWallet initiative support
Publication in Forbes: https://www.forbes.com/sites/laurashin/2017/06/07/bitcoin-is-at-an-all-time-high-but-is-it-about-to-self-destruct/#2c855a79cb31
Dash’s Amanda B. Johnson Talks About the Future of the Cryptocurrency: http://www.financemagnates.com/cryptocurrency/interview/dashs-amanda-b-johnson-talks-future-cryptocurrency/
New Hampshire’s First Vending Machine to Offer DASH: http://freekeene.com/2017/06/13/new-hampshires-first-vending-machine-to-offer-dash/
An article on Dash in Ghana: https://salam.liberty.me/dash-cryptocurrency-coinpedia-bitnation-and-the-libertarian-community-with-cle-ghana-are-set-to-eliminate-poverty-in-northern-ghana/
EToro launches cryptocurrencies investment CopyFund ("Dash to be added in the near future"): https://www.finextra.com/pressarticle/69540/etoro-launches--cryptocurrencies-investment-copyfund
Get your Dash at 9000 kiosks in Ukraine! https://www.dash.org/forum/threads/get-your-dash-at-9000-kiosks-in-ukraine.15268/
Sao Paulo / Brazil 2nd Bitcoin Summit - 30th June 2017. Daniel Diaz from Dash attends the conference. https://blog.coinbr.net/bitcoin-summit-evento-2017/?rdst_srcid=756684
Dash Payment Platform Evolution Aims to Undercut PayPal, Venmo From 2018: Altcoin’s Roadmap: https://cointelegraph.com/news/dash-payment-platform-evolution-aims-to-undercut-paypal-venmo-from-2018-altcoins-roadmap
How To Enable On-Chain Scaling: https://medium.com/@eduffield222/how-to-enable-on-chain-scaling-2ffab5997f8b
Interview with Evan Duffield on Evolution's Roadmap: https://www.youtube.com/watch?v=E65QixSRosw
Dash sets out roadmap: https://www.finextra.com/pressarticle/69847/dash-sets-out-roadmap
BitcoinNW Launches Third DASH Cryptocurency ATM in Oregon: http://www.razor-forex.com/2017/06/bitcoinnw-launches-third-dash.html
Why On Earth Would A Merchant Drop Bitcoin For Dash?: http://news360.com/article/408264561
Can Bitcoin’s First Felon Help Make Cryptocurrency a Trillion-Dollar Market? (Dash featured): http://fortune.com/2017/06/26/bitcoin-blockchain-cryptocurrency-market/
Hong Kong | Dash Research and Planning by Evan Duffield: https://medium.com/@eduffield222/hong-kong-research-and-planning-4206e065aa9c
Dash DAO Gives Away $50,000 in #FirstDashWallet Campaign: Insights From Amanda: https://medium.com/dash-for-newbies/dash-dao-gives-away-50-000-in-firstdashwallet-campaign-insights-from-amanda-f319f8a3bf46
Moshi Moshi from Dash Japan): http://cryptocurrencymagazine.com/dash-japanese-website
Daniel Diaz - Dash at PanaFinTech - 15th June: https://www.dash.org/forum/threads/daniel-diaz-dash-at-panafintech-15th-june.15379/
Dash Sponsored MMA Fighter Davis Dos Santos To Fight At TKO 39: https://www.dashforcenews.com/dash-sponsored-mma-fighter-davis-dos-santos-fight-tko-39/
Venezuelans Are Seeking a Haven in Crypto Coins as Crisis Rages (Dash mentioned): https://www.bloomberg.com/news/articles/2017-06-15/venezuelans-are-seeking-a-haven-in-crypto-coins-as-crisis-rages
Footnotes
(1) Insight API is a REST API and WebSocket service based on Bitcore Node Dash in order to work with Dash Blockchain in a easiest way.
(2) In Evolution, users create accounts by registering their subscription data directly on the Blockchain in the metadata of specially constructed transactions called Subscription Transactions that also burn a minimum amount of Dash via a provably unspendable null-data pubkey script in one of the transaction’s outputs.
(3) ZMQ is a raw, high-performance async brokerless messaging library. We will use it to add a P2P Layer in DAPI. We choose ZMQ because Dashd already need it, so we already have this dependency, and because of it’s lightweight footprint.
(4) Proof-of-concept
(5) A decentralized API which allows third tier users to access the network securely and provide functionality for merchant payments.
(6) A trusting system that will provide a value to each DAPI node given their quality of answer, but also performance or any technical information on health of the server and quality/trustiness of the data he sent.
(7) Each DAPI node will be connected to another DAPI node in a P2P way, this will allow us to have a specific exchange of objects that we do not want to store in the blockchain (because of the temporality of theses data).
(8) This module allows developers working with the DAPI on a Javascript landscape.
(9) Wallet built on base of Copay open source code and compatible with the current Dash network. It will contains Androind, iOs and Chrome installations.
(10) A bitcore-wallet-service compatible with DAPI.
(11) DashDrive stores data in the InterPlanetary File System (IPFS), and replicates the data using the built-in DHT and network establish thru running an IPFS node. Since the DashDrive writes are immutable and make up an immutable data ledger (much like corporate accounting, or a blockchain, for example), IPFS is actually a perfect fit for the required data store and distribution system.
(12) Each write to the database requires a pseudo-random set of masternodes, called a quorum, to agree and sign a message. If the majority of this quorum agrees, the write object will be wrapped in these masternode signatures and relayed internally to DashDrive. By using masternode quorums, we ensure that our network is sybil-proof. Any attempt to attack the network would require the attacker to control an enormous number of masternodes, which would be prohibitively expensive.