Dev Update, September 2020

Welcome to the September project dev update! Streamr has earned a bit of a reputation for ending the year strong and as we round out Q3 2020 it’s clear that this year will be no exception. Here are the main dev highlights of the month:

  • The network whitepaper is proceeding through peer review at IEEE
  • New storage node and Cassandra cluster is up and running
  • First round of audits complete for the Data Union 2.0 smart contracts
  • Major refactor of the JS Client in progress
  • Network cadCAD models are working with realistic random topologies.

Data Unions

The Data Union 2.0 smart contracts have now gone through the first round of security audit with no major findings. We’re fixing some minor recommendations made by the auditors, after which they will check our fixes, and the audit will be complete.

Core & Client Development

The JS client is being updated to the Data Union 2.0 era. It won’t become the official release (latest tag) until 2.0 is officially launched late this year, but it is available on npm as an alpha build for builders to start trying it out.

The frontend team is busy preparing the Core UI for the transition from account API keys to Ethereum private keys. This transition is an important prerequisite for the progressive decentralization of the creation and management of streams on the Network.

Network updates

The Network whitepaper received positive feedback during the peer review process by IEEE. That review is ongoing, with some requests for new information that we’re following up on. The exciting takeaway here is that our results and findings were not challenged during this review, giving us even more confidence in our network design.

The network team made improvements to the WebRTC implementation to reduce message latency. While certainly more complex, WebRTC has the added benefit of having mechanisms to work around firewalls and NATs, thereby increasing the chance of successful peer-to-peer connections.

Our collaboration with BlockScience continues. We are nearing the completion of the cadCAD modelling phase, before diving into the incentivisation modelling. Essentially, we’re developing a digital twin of the network, to be able to simulate how various parameters affect the network’s performance and security. The models are generating realistic random topologies and we are expanding them to include the message passing level. The next step is to simulate ten nodes with realistic rules and define stakeholder KPIs.

Deprecations and breaking changes

A number of API endpoints need to be retired and replaced to be compatible with our vision of decentralization. This section summarises deprecated features and upcoming breaking changes. Items marked ‘Date TBD’ will be happening in the medium term, but a date has not yet been set.

  • The API endpoints for explicitly deleting data have been removed. Going forward, storage nodes will expire old data based on the data retention period set on the stream.

    /api/v1/streams/${id}/deleteDataUpTo
    /api/v1/streams/${id}/deleteDataRange
    /api/v1/streams/${id}/deleteAllData

  • The API endpoints to upload CSV files to streams have been removed. Storing historical messages to streams can be done by publishing the messages to streams normally.

    /api/v1/streams/${id}/uploadCsvFile
    /api/v1/streams/$id/confirmCsvFileUpload

  • (Date TBD): Support for email/password authentication will be dropped. Users need to connect an Ethereum wallet to their Streamr user unless they’ve already done so. As part of our progress towards decentralization, we will end support for authenticating based on centralized secrets such as passwords. Going forward, authenticating with cryptographic keys/wallets will be the only supported method of authentication.
  • (Date TBD): Support for API keys will be dropped. Applications integrating to the API should authenticate with the Ethereum key-based challenge-response protocol instead of API keys. As part of our progress towards decentralization, we will eventually end support for authenticating based on centralized secrets such as API keys. Going forward, authenticating with cryptographic keys/wallets will be the only supported method of authentication.
  • (Date TBD): Support for unsigned data will be dropped. Unsigned data on the network is not compatible with the goal of decentralization, because malicious nodes can tamper with data that is not signed. As the Streamr Network will be ready to start decentralizing at the next major milestone (Brubeck), support for unsigned data will be ceased as part of the progress towards that milestone. Users should upgrade old client library versions to newer versions that support data signing, and use Ethereum key-based authentication (see above).

Thanks for reading!

If you’re a developer interested in contributing to the Streamr ecosystem, consider applying to the Streamr Data Fund for financial backing to fast track your plans.

Stay up to date

Get the latest Streamr news and articles delivered to your inbox