Dev Update January 2019

Working with Birmingham City Council at our hackathon on Jan 22 to push real-time traffic light data to Streamr

We are starting the new year with a bang! If you haven’t read it yet, please take a look at one of the most anticipated features on our data Marketplace: Community Products. In short, this feature will allow any number of individual users to push their data to a larger pool of a similar dataset, and receive payment whenever a buyer subscribes to that pooled stream. If you have heard the saying, “data is the new gold”, Community Products is akin to gathering flecks of gold dust and turning them into into one kilo nuggets 😮. Our goal is to make the process so simple for end-users they will start wondering why they have been giving up their data for free for so long.

In parallel, Henri, our CEO, just announced on Twitter we are currently testing the upcoming Streamr P2P Network version on U. S. Naval Research Laboratory ‘s CORE emulator. The test will comprise 150 nodes hosted in 15 cities around the world, with realistic latencies modeled after ping statistics from WonderNetwork. Look at the map below for a visual representation (spotting a pattern? :D)

Streamr P2P Network Simulation Using USNRL Core Emulator

So rolling with the positive momentum, this month you will get a 2-for-1 deal on your monthly developer update — in one post we have both December 2018 and January 2019’s progress report. And yes, we were all working for most of December too if you were wondering!

January 2019 Update

Network

  • Broker: make it compatible with new internal Streamr Network version
  • Broker: store incoming messages to Cassandra
  • Broker: add utility functions to fetch historical/resend data from Cassandra
  • Get running first full experiment with Core-Emulator
  • Create calibration test for Core-Emulator
  • Update metrics node to send more statistics to canvas
  • Various improvements in connection management
  • Add switch to our topology generator for experiments
  • Design of the new streamr protocol
  • Javascript implementation of the new protocol
  • Java implementation of the protocol’s new stream messages
  • Cloud-broker: update to use the new protocol (no more binary formats nor kafka offsets)
  • Data-api: started to update to use the new protocol
  • Streamr-client-javascript: update to use the new protocol
  • Rotate production environment secrets

Ethereum

Work on Monoplasma demo scenarios continues: airdrop demo is done. Revenue sharing demo is in progress. Those two are good enough for initial release to show a range of potential (and simple) use cases.

  • User Profile - refactor Ethereum identity to use modals
  • Added signing in with Ethereum

EEM (Engine, Editor, Marketplace)

  • Implement stream field editor and live stream preview
  • Implement API key editor for stream
  • Finalize client side timestamp/timezone removal
  • Add user last logged in and date created fields
  • Start work on finding stale products on marketplace
  • Refactoring, moving key module to shared
  • Add wait states and spinners to key fields
  • Add saving to user profile
  • Disable API keys removal when only one key remains
  • Fix canvas tile menu, add menu to user product listing
  • Completed work on the Streamr API-Explorer
  • Working on the new Streamr Docs
  • Editor Style Updates
  • Improved Undo/Redo behaviour
  • New Dashboard GUI implementation
  • Merged the refreshed modal dialogs and the notification system
  • Removed timezone from the registration page
  • Made the old login/register/password pages (Engine & Editor) use the new backend endpoints
  • Prepared token-based session support for the platform
  • Working on the new landing page

DevOps

  • Setting up CI continues
  • Debugging staging issues and improving it
  • Private environment setup
  • Clean Mysql DB
  • Kafka Persistence
  • Cassandra Persistence
  • Staging environment setup: fix Engine & Editor code deploy

December 2018 Update

Network

  • Optimization to message propagation (do not propagate message back to source)
  • Actively ask tracker for other nodes for a stream until an inbound edge threshold is reached
  • Add support for new message IDs, support for stream partitions
  • Write producer and node scripts for emulated network for collecting performance and correctness metrics
  • Fix local timestamp issue in test

Ethereum

  • Working on Monoplasma release
  • Creating simple demo scenarios that could be used out-of-the-box with minimal configuration
  • Looking also at other potential use-cases for Monoplasma as a way to contribute back to Ethereum ecosystem

EEM (Engine, Editor, Marketplace)

  • Admin-only API endpoint for creating users https://github.com/streamr-dev/engine-and-editor/pull/534
  • Fix to rest-e2e-tests
  • Update change password dialog
  • Add key field & editor component
  • Fix for live stream data logout problem
  • Working on user profile Ethereum identity section, refactor user & integration key module
  • User Profile — delete account, stream settings, Avatar change modal
  • Diagnose issues related to Marketplace purchase not working
  • Implement searching and filtering for dashboards, products and purchases
  • Started working on new stream edit view
  • Tested server side rendering for SEO purposes for Marketplace

DevOps

  • Sync Staging and Production environments
  • Setup CI environment
  • Set up codedeploy and travisci for cloud-broker