Orbs: Staking Scheme Research Complete, The GBBC’s ‘Demo Day on the Hill’, New Reputation Feature, Stress & Endurance Testing Suite, New Demos And Status pages, New Developers

Paradigm
Paradigm
Published in
17 min readNov 25, 2019

Biweekly update 11th November — 25th November

Let’s begin our week with Orbs! During the past two weeks, they continued moving forward on the roadmap, performing admirably both on development and social side. Recently they published an extended technical update, where they featured the amount of work done. Notably, they proceed with the creation of Marvin, a new stress and endurance testing suite that will alert and help identify cases where code changes lead to performance degradations, an internal metric of the liveness of validators. It checks how many times a validator failed to close a block that allows recognizing malicious validator or if one experienced a brief network outage. This value can help guardians to make an informed decision about voting out nodes that impair the liveness of the entire network.

Moreover, they mentioned that the Orbs team previously released, and the validators accepted version 1.2.2 of Orbs network in October, featuring time-based elections, triggers, and the reputation mechanism just mentioned. The dev team also worked on development related to the user side of the system; a new demo page that includes links to several demos is now accessible. The research team finalized the new staking scheme (the staking contract enables Orbs token holders to stake tokens, request to unstake them, entering a cooldown period, and withdraw tokens back to their ORBS ERC20 account). Additionally, they enabled the utilization of a Management Chain functionality. Two new developers joined contributing to the code.

Furthermore, Orbs actively participated in social life. President and Founder of Orbs, Daniel Peled, delivered a speech at D.FINE, the leading conference of the Korea Blockchain Week 2019 at Grand Intercontinental Seoul Parnas in September, discussing Orbs, trust, and how to make the Internet great again! By the way, Orbs is working with a primary news agency to create a blockchain solution to address copyright and usage concerns for images. Danny Brown Wolf recently presented at “Demo Day on the Hill,” where several members of Congress spoke on the state of blockchain technology, and the role of government and enterprise in ensuring the United States remains a leader in the space. Such conferences help in popularizing the blockchain technology and bring the mass adoption closer!

The Orbsian community grows, and the number of subscribers in social networks similarly tends to increase. Seek for blockchain use-cases with us!

Development

Github metrics

{Blockchain Core}

-by Ido Zilberberg & @electricmonk

  1. Numerous refactoring and cleanups of the test infrastructure
  2. After a Gamma version with a broken Golang contract compiler has been released by mistake, added a test that attempts to deploy a contract against a Gamma server running in Docker (GitHub link)
  3. Refactored the Golang contract processor to allow instantiating it with a different set of pre-built contracts than what’s used in production (GitHub link)
  4. Removed the Ethereum simulator usage from the codebase; previously, component tests in the Ethereum cross-chain connector package were being run against go-ethereum’s SimulatedBackend. This caused problems, as it was not intended to actually simulate a full-blow Ethereum network, but rather to just allow running contracts against en EVM. Specifically, the Orbs network uses complicated logic to fetch a “final enough” block number in Ethereum for a transaction that’s currently being executed, so that a transaction will not run a possible block that doesn’t end up in the longest Ethereum chain. This logic is dependent on block number, a concept that’s not supported in SimulatedBackend. As a solution, the Orbs network now runs all of its tests against Ganache. (GitHub link)
  5. While investigating a port collision in the in-process E2E test, they found out that if an Orbs node is started with a Gossip port that’s already in use, it will endlessly attempt — and fail — to listen to that port. This PR changes this behavior, so now the node will panic and exit in this case.
  6. A common reason for flakiness was that the Gossip TCP server opens a goroutine for each incoming connection, and these goroutines were not being supervised. This resulted in logs being written after tests have been completed, which is not allowed in Golang tests. (GitHub link)

Ido Zilberberg & Itamar Arjuan — work is underway on Marvin, the test framework for Orbs’ test networks. Marvin identifies performance degradation or increases in errors when merging PRs into the master branch. This prevents regression in production code. It does so by running stress and endurance tests against a test network and comparing present and past results.

Summarized test results are sent to the developer, along with a comparison to the existing master branch. In addition, full test results are accessible via the Grafana dashboard or directly in the Prometheus TSDB (Time Series database). Prometheus continuously collects metrics from the main test network that runs the master branch.

In phase II it will gain the ability to run on every push to an open PR for more immediate developer feedback and will be able to test the effect of pushing PRs to master prior to actually doing so, preventing unwanted merges. It will also collect logs into an ELK stack for deeper analysis.

An initial version of the client that exercises the test network is already written in Go, and the two additional Node.js processes are underway. These are:

  1. The Orchestrator that listens to external requests (such as from CircleCI) and spawns JobExecutor instances per test job
  2. The JobExecutor that runs multiple instances of the Go clients.

The full code is available on the Marvin repo.

Running stress tests against testnet yields a notification to Slack, such as this one:

(Disclaimer: This is still in development, the results will be more detailed, will compare against previous runs, and will be aggregated from more transactions over a longer time period.)
Here is Grafana sample output (not related to the Slack message above)

{Reputation & Committee Generation}

This new feature allows every Orbs-node to save information about the behavior of the validators. The node keeps track of how many times in a row a validator failed to close a block. When a validator doesn’t close a block, they will make it less likely for it to be the leader of the block committee — this helps the liveliness of the network. Soon this information would be present to the guardians, so they may choose to vote against misbehaving validators.

{New Types}

Orbs-nodes can support four new types of arguments in public methods of the contract (methods that can be called from the client directly): bool, *big.Int, [20]byte & [32]byte. This expands the usability of contracts.

This addition required modifications in several repositories, listed below. It’s already part of the coming gamma-cli 0.9.0 version, where it can be tested and used in the experimental mode.

memuffers:

  1. https://github.com/orbs-network/membuffers/pull/33
  2. https://github.com/orbs-network/membuffers/pull/36
  3. https://github.com/orbs-network/membuffers/pull/37

Orbs-spec:

  1. https://github.com/orbs-network/orbs-spec/pull/186
  2. https://github.com/orbs-network/orbs-spec/pull/184

orbs-network-go:

  1. https://github.com/orbs-network/orbs-network-go/pull/1405 — sanitation of packages to allow math/big:
  2. https://github.com/orbs-network/orbs-network-go/pull/1398 — types of bool and *big.Int
  3. https://github.com/orbs-network/orbs-network-go/pull/1356 — types [20]byte & [32]byte

orbs-client-sdk-go:

  1. https://github.com/orbs-network/orbs-client-sdk-go/pull/30

orsb-client-sdk-javascript:

  1. https://github.com/orbs-network/orbs-client-sdk-javascript/pull/28

Gamma-cli:

  1. https://github.com/orbs-network/gamma-cli/pull/11

Amir Arad is a prolific open source contributor who is starting to contribute to the ORBS network code and documentation:

  1. Improve randomness of ports in the in-process E2E test
  2. Improve committee metrics: add members IDs
  3. Begin to simplify docker composition

Fixed some flaky tests:

  1. Add timeouts to test drivers
  2. Resolve race condition inscribe

@ronnno

  1. Various PRs — Fixing flakiness and race detector bug fixes

With @itamararjuan:

  1. https://github.com/orbs-network/orbs-network-go/pull/1335 — prefetch smart contract compiler dependencies, and prevent go.mod file modifications during compile
  2. https://github.com/orbs-network/orbs-network-go/pull/1303 — Launch Management chain in all E2E test scenarios. Preparatory PR to launch a management chain pending new spec for management chain based elections
  3. https://github.com/orbs-network/orbs-network-go/pull/1305 — Gossip dispatcher liveness fix — when message queues are full do not block the dispatcher goroutine and discard the message.

@vistra & @ronnno:

  1. https://github.com/orbs-network/orbs-network-go/pull/1303 — Refactor worker loop context allocation. Prevent unnecessary interruption of Lean Helix event handlers. More accurate cancellation of event handlers based on the height and view of the incoming event. Resolves issue #74

{Technology Engagement}

- by Jonathan Levison

SFBW19:

  1. They had a very successful Orbs-led “Blockchain for Enterprise” event
  2. At the SFBW conference itself we’ve had lots of very interesting meetings:
  3. Learned about a lot of use-cases already explored by established major companies
  4. Discussed potential projects with several interested enterprises
  5. They identified several areas that would be relevant for future feature-set
  6. In preparation for the events, they released the demos page (https://demos.orbs.network), which garnered a lot of interest at the meetings
  7. The Orbs network was updated to version 1.2.2 in October and was accepted by the Orbs network validators.. The release notes are available here.

{Development}

  1. Membuffers for JavaScript now supports uint64, that enables iOS support. iOS has an older version of WebKit that does not implement uint64 operations for DataView object — by @netoneko and Noam Berg
  2. Boyar now has options related to logfile management — by @netoneko
  3. Status page is now available for both production and demo networks — by @netoneko
  4. Regression is orbs-network-go that by mistake has excluded experimental Go smart contract libraries from the build has been fixed by @netoneko and @itamararjuan
  5. New pluggable processor architecture is in the early stages of specification and development. This will allow supporting more languages for smart contracts — by @netoneko
  6. First pluggable processor is in the experimental stage and JS SDK API has already been defined — by @netoneko

{Application Use Cases}

  1. There’s a new home for all demos of application use cases built with Orbs technology. It includes links to working demos and a reference implementation. Check it out.
  2. Open Rights project is live. You now can easily connect your Instagram account and automatically register metadata of your images on the blockchain — by @bolshchikov
  3. Camera Registry application allows registering pictures from your cell phone directly on the blockchain. The current support is for Android. Based on the open-sourced application of Open Camera. Validation of registered images can be done here — by @bolshchikov
  4. Provenance demo became the first demo that works on all major platforms, both desktop, and mobile — by @netoneko
  5. Notary library received a bugfix for a hashing function used inside — Node.js and client-side version produced different hashes — by @netoneko
  6. Notary Web Gateway provides a REST API for notary library so it could be used in languages other than JS — by @netoneko

{Developer Experience}

  1. JavaScript Client SDK 2.0 was released with some breaking API changes to support more secure Signer interface, paving the road to adoption of new wallet architecture — by @netoneko
  2. JavaScript Client SDK starting from version 1.4.0 and 2.1.0 now support iOS, covering all major platforms: Firefox and Chrome on desktop, and Android and iOS on mobile — by @netoneko
  3. Nebula now comes with a debugging manual that can help validators to identify and fix problems with their nodes — by @netoneko
  4. Orbs Project Generator has moved to version 2.0.0 of JavaScript Client SDK — by @netoneko

{Research and Architecture}

- by Avi Asayag

The Orbs research team’s efforts continue with researchers and developers work on different aspects of the Orbs blockchain infrastructure!

  1. Orbs Staking Contract

The R&D activities on Orbs PoS architecture were focused on the Orbs staking contract.

The staking contract development was completed and is now undergoing an external security audit. The contract is available for review in the orbs-staking-contract GitHub repo along with a high-level specification.

The Orbs network staking contract is set to be deployed on Ethereum similarly to the ORBS native token. The use of an ERC20 token and a staking contract on the Ethereum blockchain enables the Orbs PoS hybrid model. In the Orbs PoS model, the staking, delegation, and validators selection process are done on Ethereum and the Orbs network calculates the election results along with the earned rewards based on the data logged on Ethereum.

The staking contract enables Orbs token holders to stake tokens, request to unstake them, entering a cooldown period and withdraw tokens back to their ORBS ERC20 account.

An interesting aspect of the Orbs staking contract is the migration strategy. First and foremost, the contract is designed to be immutable such that stakers’ funds are secured and one can not move staked tokens or modify the staking properties without the staker approval. On the other hand, they want to allow stakers to transition to new staking contracts in the future without requiring them to first unstake before staking in a new contract, leaving them without staked tokens for the cooldown period. The proposed staking contract addresses the issue by allowing stakers to explicitly request to migrate their stake to a new staking contract thus allowing a seamless transition.

A complementary product for the staking contract is a staking wallet to enable a simpler interface for staking, which allows ORBS token holders to interact with the contract without a need to manually construct the transactions. They’ve designed a product definition for such a staking wallet and are starting to develop it. The staking wallet they’re working on may be used by the Orbs community as a reference implementation for additional wallet implementations.

2. New Features

Gad has completed the specs of two new features: the Management Chain and the Ethereum Proxy.

In addition to the benefits coming from the introduction of the Management Chain (see more in the previous tech update), its inclusion obliges supplementing the Orbs network’s infrastructure with cross-Virtual Chain (VC) communication. Communication between different VCs will be regularly used between any VC and the Management Chain but can be employed for other uses such as the design pattern of hierarchical VCs. The management chain will hold every VC’s configuration, for example, the current VC’s validators set. This, in turn, will facilitate coordination between validators assigned to operate a new VC. However, it also implies that the VC is no longer standalone. To audit a VC (and verify its state transitions), one must consume the VC’s configuration from the management chain.

The Ethereum Proxy feature will significantly facilitate the process of obtaining and calculating the Election results from Ethereum. Among its benefits is the removal of the external agent that mirrors the Ethereum data and relaxation of demands from an Ethereum node. Now, an Ethereum node needs only to support state queries for the latest 100 blocks rather than 5000 blocks as it formerly used to be.

Social encounters

  • How much do you TRUST Facebook? What about Amazon? Are you forced to work with companies you just don’t trust? President and Founder of Orbs Daniel Peled delivers a speech at D.FINE, the main conference of the Korea Blockchain Week 2019 at Grand Intercontinental Seoul Parnas in Gangnam, Seoul on Sept. 30th 2019. Learn more about Orbs, trust and how to make the Internet great again!
  • The latest EU regulations are a real opportunity for blockchain to demonstrate value, facilitating sustainable solutions for creators to monetize on their content! Here you can find more pictures from Blockchain and Media panel with EU Blockchain.
  • Ensuring copyright protection & proper usage depends on the ability to verify the origin of content. Orbs is working with a major news agency to create a blockchain solution to address copyright and usage concerns for images. Danny Brown Wolf presented at “Demo Day on the Hill”:

Several members of Congress spoke at “Demo Day on the Hill” on the state of blockchain technology, and the role of government and enterprise in ensuring the United States remains a leader in the space.

“Not surprisingly, many of the solutions demoed highlight how blockchains and blockchain solutions can be exceptionally well-suited for regulatory compliance. For example, Orbs blockchain-based public registry for content rights demoed by Danny Brown Wolf, Head of Partnerships and Strategy at Orbs, is designed to be compliant with the European Union’s (EU) new Directive on Copyright in the Digital Single Market. Similarly, EY’s Nightfall protocol demoed by Paul Brody, EY’s Global Blockchain Lead, utilizes zero-knowledge proofs to enable private transactions on the public Ethereum blockchain, and is compliant with the EU’s General Data Protection Regulation.”

Over the course of the day, attendees had the opportunity to see how blockchain is playing a role in shaping the future of nearly every industry.

  • The Sweet Spot | SFBW Blog an article by Gili Ovadia. The event was a great success not only by the number of people showing up but also quality-wise, some really big enterprises showed up, eager to learn more about this field.

“Most relevant to the audience of CIOs, product leads and CTOs, was the architectural choices made in building Orbs to accommodate their company’s needs. I aimed to show that there is a middle-ground that accommodates enterprise permissioning needs alongside the innovation of permissionless blockchain with our hybrid two-tiered consensus. Orbs design separates block producers from validators: The first orders transactions and closes the block, while the latter validates the correctness of the work and adds it to the chain. On Orbs, block producers can be chosen by the app, whereas the validators are chosen by the network PoS algorithm coming from the Orbs permissionless validator pool. To simplify things the enterprises are setting the rules, but these rules transparent and subject to audit and due diligence by any interested party.”

Upcoming events:

No updates.

Orbs Universe

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)

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

You can delegate your Orbs tokens via link. After the end of the closest voting period, you can check your rewards here.

Finance

Source: https://etherscan.io/

Roadmap

What’s next?

According to the Roadmap:

1. 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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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.

11. 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.

Partnerships and team members

  • According to the recent Tech Update, two new developers started contributing to the code.

Rumors

No updates.

About Orbs

Orbs Architecture

Orbs Speed

Orbs Reliability

Orbs Virtual Chains

Social media metrics

Social media activity
Social media dynamics
Social media dynamics

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.

This is not financial advice.

Subscribe to detailed companies’ updates by Paradigm!

Medium. Twitter. Telegram. Reddit.

--

--