Orbs: This latest version of the Orbs blockchain platform was released, R&D progress, Coinbase Custody now supports Orbs, Voting deadlines calendar for August
Biweekly update 17th July — 31st July
Paradigm Team is delighted to welcome all the Orbsians! This company has been working remarkably good during the last two weeks. Orbs developers tried their best to solve the significant problems, and it’s worth saying that they were successful in it. In their recent R&D update, a substantial amount of enhancements was mentioned: improvements of Gamma; various stability and monitoring updates, design & implementation work on the Lean Helix consensus algorithm goroutine model; upgraded version of Nebula, Orbs’ node deployment tool, that currently supports Terraform 0.12; a list of the most essential metrics for guardians, validators and app developers was published — and this is just a tiny part of milestones reached. Orbs core contributors continue to explore the subject of privacy through zero-knowledge proofs, focusing primarily on trusted setup and key generation ceremony. The state of the Orbs Ecosystem can make every crypto-enthusiast happy. Besides, brand new Validator replenished the list of the Universe participants. Orbs experts are working on an architecture that enables to remove the need for due diligence of Validators and enables an open and competitive process. This competition should increase the security of the network and its usability.
Moreover, the latest version of the Orbs blockchain platform was released, and accepted by the network’s Validators. This version contains original features (not a hot-fix). They worked on tools, stability, Ethereum connection, and election contract. By the way, OKEX listed Orbs token and it is also supported by BitGo and Coinbase Custody. Social activity was mainly represented by Tal Kol, Orbs Founder, and Development celebrity. He discussed the importance of open-source with devops.com and had an in-depth interview with Coinboyspodcast. The community is lively and supportive. We are still thrilled about a partnership with Celsius Network. The number of subscribers in social networks is increasing (not a surprise, they are cool). Feast your eyes on Orbs’ progress with Paradigm!
- Since the last R&D update, so much has happened — Come see for yourself what’s been going on behind Orbs dev via the link.
- Updates include improvements to Gamma, various stability and monitoring updates, design & implementation work on the Lean Helix consensus algorithm goroutine model and more.
- Itamar Arjuan was working on a feature that intends to increase confidence against the introduction of bugs or regressions, and help measure improvement or degradation in performance, when changing the codebase.
- This entails introducing a new step to the CI process, where, upon, the creation of a new pull-request on the orbs-network-go GitHub repo, provisions a new virtual chain (network) and runs the e2e (end-to-end) test suite against it.
- Itamar Arjuan upgraded Nebula — Orbs’ node deployment tool — to support Terraform 0.12.
- BTW, Itamar Arjuan also managed to complete a difficult bicycle tour of northern Italy during the same time, so great job and thank you :)
- Ron Bresler wrote the contracts of rewards distribution, along with extensive testing.
- The work is in PR110 and you can read more about it in this post. Also, thanks to Gil Amran for adding rewards history to the Rewards page.
- Ron Bresler and Ido Zilberberg have been modifying the goroutine model of the Lean Helix consensus algorithm of the Orbs platform. Presently, the algorithm suffers from less-than-ideal performance when the rate of incoming transactions is low, due to having a single goroutine for waiting for new transactions, and for handling external events such as Node Sync and Leader Election in Lean Helix. Following several proof-of-concept iterations, a new model was decided upon, and development is underway! This work is expected to complete during July, more details will be available in the next update (stay tuned).
- Shai Yallin completed an update of the Gossip goroutine threading model in PR1121. Before this change, DirectTransport had a goroutine per connection, and handling a message occurred on that goroutine. This effectively blocked further communication from that peer for the duration it takes to handle the message. Some Gossip consumers, such as the LeanHelix consensus algo, may block for a long time, if — for instance — it is waiting for a new block to be produced.
- This PR creates a goroutine per Gossip topic, writing from the connection goroutines to the topic goroutines via a buffered channel. Essentially this serializes all messages from all peers to a single goroutine, but frees the connection goroutines to handle subsequent messages, and guarantees QoS per topic.
In addition, the code now creates a one-off goroutine per Block Sync request, so that scanning blocks or reading chunks from disk will not block the Block Sync topic goroutine. Another PR, #1193, upgrades the Orbs platform to compile using Golang 1.12.6 (previously 1.11.x was used).
It is expected that the Lean Helix topic will not be blocked, as it will have a goroutine that deals with reading from the topic.
More PRs by @noambergIL:
- PR1186 — To fix rewards & double delegate state
- PR99 — For election review created a script to show every election breakdown
More PRs by Ron Bresler:
- PR110, PR112 — Orbs Rewards distribution
- PR1188 — NodeSync test for when both petitioner and responder have no block
- Revamped the AWS roles in Nebula as part of an ongoing security review process.
- Published a list of the most important metrics for guardians, validators and app developers. Introduces two new metrics: transactions per second submitted to an individual virtual chain and queries per second served by an individual virtual chain per node.
- Created a library for notary apps, to enable building various solutions that rely on the notary core features of tracking information.
- Orbs core contributors invested some time into making sense of Libra.
- Explored a possibility of analytics contracts, when smart contracts method calls are being tracked and the information about the use of the main contract can be made available via a separate contract. This opens many roads to tracking, analytics, and an audit via dedicated contracts with a common standardized interface
- Use Cases and Dev Experience
Application Use Cases
A collection of use-cases with a media distributor to create a blockchain-based content registry (photos, videos etc.) and enable search, collaboration and monetization. Some interesting use-cases include:
- Smart contracts to register and search for registered images — including a perceptual hash search that finds images similar to provided ones
- Chrome extension — to highlight registered images in a browser and retrieve their metadata
- Webcrawler — retrieve metadata for all images on a webpage
Document notarization — they’ve further developed the document notarization use-case, introducing encrypted fields, ownership and more. These concepts have been presented to multiple parties interested in blockchain-based document registration and notarization (https://github.com/orbs-network/notary).
- Added ability to read smart contract debug logs via gamma-cli for development, more info documented at the following page in the contract SDK documentation.
- Expanded the packages available for smart contract development by whitelisting more of the available packages in Go, the full list is available here.
- Introduced experimental libraries for contract development available at https://github.com/orbs-network/contract-external-libraries-go
Currently includes extending the state to natively store structs.
This is part of a larger SDK architecture change to enable experimental vs. stable, production-ready code, the team will expand on this subject and the rationale in a dedicated post.
User Facing Products
Prism (Block Explorer)
- Added a new script to automatically upgrade prims’s version, and publish it (commit).
- Prism will now get published to docker hub on every push (experimental) and on every version upgrade.
- Added dbVersion to the db (commit), upgrading according to semver (commit)
- Introducing dbBuilder for first time/upgrade situations. (commit)
Hedron (Voting UI)
- Using a new rewards contract, it is now possible to view past rewards on the site (link)
- Fully suFully supports Japanese and Korean language translations (commit).
- Removed old JS/KO sites (using permanent redirect) (commit)
- Fixed stake calculation bug (commit). Was showing the wrong percent.
- Better locale when displaying numbers. (Was send as string from the server) (commit)
- Proxy server is now in the process of deprecation, and all the web3 code is being extracted (commit) and will be moved soon to the client-web project.
- A big refactor to the client-web was done in order to separate Ethereum read/write services (with metamask and without). Commit.
- Removed unused contracts from the proxy server. (commit)
- Playground (Online IDE)
The Orbs Playground is an online IDE for developers, a fast an easy way to tryout Orbs smart contract creation and debugging. Deploy a smart contract, execute functions and view events and state history. Available on http://playground.orbs.network for everyone.
- Research and Architecturу
Orbs’ research efforts continue with researchers and developers work on different aspects of the Orbs blockchain infrastructure! Here is a breakdown:
Resources are dedicated to researching the PoS market. There are two sides to this market: Projects, and ecosystem players. On the projects’ side, Orbs researchers have been focused on learning ~20 different projects which have a PoS element to them. In particular, they’ve been trying to understand what goals were the projects trying to realize via specific design choices, and how ecosystem players eventually chose to respond. On the ecosystem players side, mapping the market to different types of players — staking services, infrastructure services, lending platforms, exchanges, etc to how each type may benefit/harm a PoS network.
Open and competitive validators nomination process.
Currently, Validators undergo a due diligence process in order to evaluate their technical abilities and enabling gradual rollout. Orbs architects are working on an architecture that enables to remove the need for due diligence and enables an open and competitive process. This competition, as a by-product, should increase the security of the network and its usability.
As a first step to achieve this, they are working on a locking contract for Validators and Validator candidates. This locking contract, deployed on Ethereum, is designed to match the Orbs election architecture and support efficient queries by the election contract that runs on top of the Orbs platform. In order to allow the protocol to evolve in the future, they’ve designed the contract to be migratable, while still requiring participants to provide their agreement for the migration.
- Threshold BLS signature scheme security proof
An ongoing Random Beacon project is carried out by members of the research team. In this work, a set of rational players jointly perform a multiparty computation that results in a random number, that can be used in diverse applications. One such notable application is the selection of random committees in Orbs’ consensus mechanism.
A cryptographic primitive that naturally appears in this context, is ‘threshold digital signature’; the set of participants sign messages in an incorruptible manner as long as a large portion of them is honest. One manifestation of a threshold digital signature builds upon the well-known (single player) BLS signature scheme. However, security proof of the threshold version of this scheme is not covered in the literature. More specifically, the question raised is whether the devised scheme indeed holds the threshold property, meaning that a (certain specific) portion of players cannot produce a valid signature, while larger sets of players can. Orbs’ Research team has prepared a mathematical proof of security to ensure the security of the threshold version of the BLS signature scheme.
Orbs core contributors continue to explore the subject of privacy through zero-knowledge proofs, focusing primarily on a few subjects:
- Trusted Setup. Most efficient forms of zero-knowledge proofs require a trusted setup, a subject of controversy, as it entails an expensive procedure and is specified to an application. In other words, different applications (including updates to an application) require different trusted setups. They study zero-knowledge proof systems where the trusted setup only has to be carried out once and is universal in the sense that it supports all applications. These usually come at a price of efficiency, and they focus on mitigating this problem, taking advantage of the efficiency of the Orbs blockchain infrastructure.
- Key generation ceremony. The generation of keys is a process ideally performed by a trusted party, as leakage of the private keys has severe implications. However, In typical blockchain usually, such a party does not exist. The team has been studying the procedure to ensure that keys do not leak while avoiding the need for a trusted third party.
- File Systems and Immutable Large Data Storage
Orbs Network aims for accommodating apps that (among others) require large amounts of storage. Part of the research included the reviewing of the IPFS (InterPlanetary File System) protocol. IPFS is a distributed peer to peer storage system that has recently gained a lot of interest from various blockchain projects that see IPFS as a good candidate for their protocol’s storage layer (like TrueBit).
The research team has been scrutinizing the different components of IPFS in order to learn from them towards a solution tailored particularly for the purpose of the Orbs blockchain infrastructure.
Among these components are Distributed Hash Tables (DHTs) for fast content lookup and peer locating the network; GIT protocol for version control; block exchange protocol for data swapping marketplace — all may be relevant for the future design of the ever-evolving Orbs infrastructure.
The FileCoin protocol is designed to complement exactly that. The research team has recently focused on one of FileCoin’s most interesting innovations: Proof-of-Replication (PoRep). PoRep provides an entity with a way to prove that a specific number of replications of a particular file are stored in her local storage system. A distributed file system protocol that is able to absorb the overhead PoRep incurs can solve the problem of data availability, which is one of the major issues when dealing with vast amounts of storage.
- This latest version of the Orbs blockchain platform was released, and accepted by the network’s Validators. The core team is very excited to publish the first version that contains actual features (not a hot-fix). Check it out via the link. While this is not a major update, it does include several mini-features and improvements based on requirements gathered from:
- Insights regarding the Orbs production network operating since March 2019
- Insights from elections processing
- Insights from an internal hackathon, which was focused on application development on the Orbs platform
- Bugfix: Following a case of a Validator Node being behind the network time, the core team added metrics reporting a node’s time vs. absolute time read with NTP to catch any time drifts of nodes. The metric is available to Validators and Guardians on the metrics page under “OS.Time.Drift.Millis” (pr #1163)
- Bugfix: After a period of no transactions, the first transaction would cause several empty blocks to close. This was fixed so now the Transaction Pool waits for transactions while still able to close empty blocks every configurable interval if no transactions are available. (pr #1136)
- Validations: Verify node address and private key match on startup. This prevents configuration changes (especially node address) without the corresponding configuration information (pr #1117)
- Fork detection while writing a block has been improved: Fork detection also takes place for older blocks and not just the top one, while avoiding a possible race condition. When trying to write future blocks an error is returned. (pr #1166, issue #524)
- Learning from the Election application on Orbs Universe, several logs were improved to allow the detection of inconsistent writes to the State DB. If a contract writes the same data in non-deterministic order the nodes can disagree on the block. Logs now clearly point out such cases (pr #1140)
- General: A lot of tweaks in logs and metrics were done (some added and some removed) to allow better management of the network. Major changes are the integration of Prometheus (issue #1100) and Scribe into the native code.
- Addressed an issue with the storage metrics not reporting the correct size of the block storage database (pr #1208).
- Bugfix: A bug wherein the vote-weight of the Guardians was not properly cleared before a new election result was calculated (bug #1227, pr #1234), was fixed.
- Bugfix: Double delegation issue was fixed in 1.0.7 and the prevention of double counting code was added (see here). Another delegator with double delegation was fixed (pr #1237).
- CI/CD: Improved and streamlined the nightly and Pull-Requests (PRs) processes. The goal is to have every PR as the last stage of testing to be deployed to a short-lived test-net and run tests and stress-tests on it.
- Metrics: Some metrics were added to facilitate performance regression checks on the network for future code.
- General: Improved tests to reduce time to run tests, improve stability of tests, and remove obsolete tests.
- Gamma now has more options:
- Override config values: Allow override of configuration variables from gamma-cli. This allows broader testing ability. (For example, using Ropsten as an Ethereum Node, closing blocks faster or slower, etc.)
- More nodes: Gamma allows testing with a configurable number of nodes to check network stability and performance of consensus.
- Graceful shutdown from route: one can shut down Gamma via an HTTP call.
- Verification Mode: Verification Mode configuration now allows its operator the ability to run the transactions of the blocks (limited only to blocks that are “newer” than a certain time period) and thus not only verify execution, but also collect any std-output produced by the contract. This allows a certain kind of debug or verification process that was previously not available.
- Dialing every time so that recovery from fail and/or changes of node configuration (like DNS) can happen immediately. This prevents disconnect issues and stale connections.
- “Businesses gained majorly through the use of open-source software. Similarly, decentralized blockchain infrastructure offers businesses security, robustness and most importantly guaranteed transparency with customers.” — Orbs Co-founder Tal Kol. Read the article “Blockchains Done Right Are the Next Evolution in Open Source”, explaining the importance of the open-source in the contemporary development.
- Brand-new Coinboyspodcast featuring in-depth interview with Tal Kol, Founder at ORBS Full Episode here.
- Launching a great new partnership between Orbs and Celsius Network, next-generation DeFi. See post.
- August 28 Orbs’ own Danny Brown Wolf will be participating in this panel diving into enterprise blockchain — from RealEstate to medicine. See event via the link.
Delegators, in order to receive rewards, you should delegate to an active guardian who does not miss voting deadlines. If your guardian misses voting deadlines, you will not get rewards in this period.
Guardians, please note that elections are every 20000 Ethereum blocks, it is approximately 3 days. A Guardian vote is valid for about 1 week. We recommend voting every 6 days to be on the safe side.
Voting deadlines calendar (estimated time)
Tools for Guardians: We launched specific delegation template for Guardians, so they can present themselves by deploying their own web-site using our instructions. Later, we are going to create other tools for the comfortable use.
This is how we use the Template to introduce ourselves: orbs.paradigmcitadel.io
Our GitHub with Template: https://github.com/paradigmcitadel/orbs_guardian_delegation
According to the new Roadmap:
- Proof-of-Stake Core Infrastructure V2 — Implement the next version of the Orbs Proof-of-Stake architecture with various improvements making the existing implementation more efficient, easier to use and more powerful with the ability to rely on stronger incentives like locking.
2. Proof-of-Stake Ecosystem Tools — Create tools for participants in the Orbs PoS Universe. Validators will benefit from easier ways to keep their node healthy. Guardians will have better ways to measure Validators. Delegators will have easier ways to stake and observe network activity.
3. Orbs Audit Node — Audit nodes are important for network security. They allow any external participant (not necessarily a Validator) to verify that the network operation is correct. Audit nodes may choose to audit only a single or subset of virtual chains.
4. Orbs Two Tier Consensus — Two tier consensus is the hybrid aspect of Orbs. It allows to build permissioned apps — where the app can select its own block producers. These apps run over a permissionless infrastructure — where validators are selected by the network.
5. Virtual Chains Infrastructure — Virtual chains are a key feature of Orbs that provides isolation between apps. It gives the network infinite scalability and sharding; and provides apps with lower cost of operation, guaranteed resources and independent governance.
6. Validator Node Deployment V2 — The next generation of how a Validator deploys and operates an Orbs node. Improvements include efficiency for reduced operation cost, higher availability and uptime, optimizations for even more scaling and improved security.
7. Orbs Smart Contract SDK — Allow developers to build even better apps with Orbs for more versatile use cases. Developers are requesting richer API’s that support more languages, more powerful data structures and more flexible interoperability.
8. App Developer Experience — Increase developer adoption by making the app development experience on Orbs easier than ever. Help developers learn how to build on Orbs and give better developer tools to debug and test their smart contracts.
9. Ready-Made Use Case Templates — Increase business adoption of the Orbs network by offering solutions for popular blockchain use-cases. These templates reduce the integration time of blockchain technology into a business from months to days.
10. Network Production Enhancements — The Orbs network is in production mainnet from March 2019. Continue the process of making the network more mature, reliable stable, performant and secure — so it can host even bigger apps with more users and more value.
11. Protocol Enhancement Research — Long term research for core improvements to the Orbs protocol. Every big feature like privacy with zero-knowledge proofs requires months of academic research before being implemented in production and added to the core.
12. Online IDE for App Developers — Similar to Ethereum’s Remix, the online IDE lets app developers write smart contracts directly from their web browser without installing any tools. This is a great way to make experimentation with Orbs easier with less friction.
13. Prism Block Explorer — Prism is the Orbs block explorer which lets users access the chain directly, find transactions and inspect blocks. Prism is also a developer tool because it lets smart contract developers investigate their contracts and learn how they’re used.
Partnerships and team members
- The discussion of Lead developers from Orbs, @vegannation, Chain Accelerator, Nomadic Labs, and Lionschain Capital all discussing and analyzing the tezos Smart Contract Certification exercise in blockchain Developer Course. Watch here.
- Seoul presentation picture:
Orbs Virtual Chains
Social media metrics
The graph above shows the dynamics of changes in the number of Orbs Facebook likes, Reddit subscribers and Twitter followers. The information is taken from Coingecko.com.