DeepBrain Chain Developer Hub

Welcome to the DeepBrain Chain Developer Hub! The official source of our comprehensive guides, tutorials, APIs, FAQs and documentation to help assist with all of our products.

Policies

Please take the time to review our policies. This will aim to serve everyone better and provide a more streamlined process.

DeepBrain Chain’s Code of Conduct

Standards

Examples of behavior that contribute to a positive environment:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Examples of unacceptable behavior:

  • The use of sexualized language or imagery and unwelcome sexual attention or advances
  • Trolling, insulting/derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others’ private information, such as a physical or electronic address, without explicit
  • permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting

Our Responsibilities

DBC project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the DBC project or its community. Examples of representing a project or community include:

  • Using an official project e-maill address
  • Posting via an official social media account
  • Acting as an representative at an online or offline event
  • Posting in our public or private Github as part of the community

Representation of a project may be further defined and clarified by project maintainers.

Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at t.me/deepbrainchain. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.* Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributorcovenant.org/version/1/4

Contributing to DeepBrain Chain Community

Thank you for your interest in contributing to the DeepBrain Chain! There are many ways to contribute, and we appreciate all of them. This document is a bit long, so here are links to the major sections:

  1. Contributing to DeepBrain Chain Community
    1. Feature Requests
    2. Bug Reports
    3. Writing Documentation
      1. Parity Technologies
      2. Rust

If you have questions, please hop on the DBC Discord, DBC Community Developers Telegram.

As a reminder, all contributors are expected to follow our Code of Conduct.

Feature Requests

To request a change to the way DeepBrain Chain code works, please head over to the repository and enter a new feature request for instructions.

Bug Reports

While bugs are unfortunate, they’re a reality in software. We can’t fix what we don’t know about, so please report liberally. If you’re not sure if something is a bug or not, feel free to file a bug anyway.

If you believe reporting your bug publicly represents a security risk to DeepBrain Chain users, please follow our instructions for reporting security vulnerabilities.

If you have the chance, before reporting a bug, please search existing issues,as it’s possible that someone else has already reported your error. This doesn’t always work, and sometimes it’s hard to know what to search for, so consider this extra credit.

Similarly, to help others who encountered the bug find your issue, consider filing an issue with a descriptive title, which contains information that might be unique to it.

Opening an issue is as easy as following this link and filling out the fields. Here’s a template that you can use to file a bug, though it’s not necessary to use it exactly:


# Bug Report Template

Description: [enter a short summary of the bug]

I tried this code:

[code sample that causes the bug]

I expected to see this happen: [explanation]

Instead, this happened: [explanation]
# Meta needed

$ dbc-mainchain --version

Backtrace: [crash information]

Writing Documentation

Documentation improvements are very welcome. The source of docs.dbc.team is located at the https://github.com/dbc-community/docs.dbc.team repository, and standard API documentation is generated from the source code itself. Documentation pull requests function in the same way as other pull requests.

Parity Technologies

The DeepBrain Chain blockchain is based off of Substrate from Parity Technologies.

Rust

We use the Rust Language quite a bit.

For people new to Rust, and just starting to contribute, or even for more seasoned developers, some useful places to look for information are:

Rust StackOverflow.

Rust package management via Crates.io.

DeepBrain Chain

About DeepBrain Chain

DeepBrain Chain is a nonprofit organization which aims on providing a fundamental platform for AI facilities. DeepBrain Chain was born in 2017 and had an ICO that finished December 15th, 2017. We are creating an artificial intelligence computing platform driving by blockchain technology.

More information about us will be listed on the official site https://www.deepbrainchain.org/.

DeepBrain Chain Community

DeepBrain Chain Community and projects.

About Us

What exactly is the DeepBrain Chain Community?

Who are we

The DeepBrain Chain Community is a subset of the DeepBrain Chain organization. Our goals purely focused on the customers and end-users to help bridge the gap with the core team. We also are developing the blockchain stack for the AI Training Net to interact with.

When did the community form

DeepBrain Chain commissioned the community in April 30th, 2019. The two founding members have both been heavily involved in the project prior to the announcement.

Contact

A list of ways to interact with the DBC community.

Telegram

Telegram is by far the most active communication channel. Please visit us on our main group at t.me/deepbrainchain.

Riot

We are exploring Riot as a bridge between chat platforms. It’s not very active at the moment and an ongoing work in progress.

Come join the DeepBrain Chain Community channel via Matrix.org:

Direct link for Riot

Riot Community Room

For more social networking see

Feedback

We value quality feedback and contribution from everyone. Please feel free to make edits and suggestions as you read through the documentation.

Mainchain

The DeepBrain Chain blockchain is the backbone to training. The framework is written in Rust, which has many benefits and allows easy interoperability with other languages. The blockchain itself is a modified Substrate blockchain framework that is modular and fast. The consensus layer is hot-swappable through the use of runtime library modules

Cryptography

Cryptographic primitives used in blockchains such as hashes, elliptic curve cryptography (ECC), and public/private keypairs.

Hashing Algorithm

The hashing algorithm being used is Blake2b. Blake2 is considered to be a very fast cryptographic hash function that is also used in the cryptocurrency Zcash.

Keypairs and Signing

DeepBrain Chain uses Schnorrkel/Ristretto x25519 (”sr25519”) as its key derivation and signing algorithm.

Sr25519 is based on the same underlying Curve25519 as its EdDSA counterpart, Ed25519. However, it uses Schnorr signatures instead of the EdDSA scheme. Schnorr signatures bring some noticeable benefits over the ECDSA/EdDSA schemes. For one, it is more efficient and still retains the same feature set and security assumptions. Additionally, it allows for native multisignature through signature aggregation.

The names Schnorrkel and Ristretto come from the two Rust libraries that implement this scheme, the Schnorrkel library for Schnorr signatures and the Ristretto library that makes it possible to use cofactor-8 curves like the Curve25519.

Performance

What kind of resources does a node need to participate?

The answer is minimal, most cloud instances can easily perform. The biggest drawback in-terms of performance is networking. I’ve seen when there are BGP leaks happening around the internet, some routes become susceptible to DDoS type behavior causing the process to slow down or halt.

What about TPS?

See this statement by Gav with Polkadot.

Answered by Gav: Reason for using asynchronous rather than synchronous communication? Difference in terms of TPS?

img

First some terminology. Cross-chain communication has two paradigms: active and passive. They might also be named “mutable” and “immutable” or “push” and “pull” or “write” and “read”. Active is where one chain, actually sends a message into another chain which would then have some effect in that receiving chain. Passive, on the other hand, is where one chain simply reads some recent information about some other chain and takes some action itself.

In wholly synchronous systems like Ethereum, both are synchronous. One smart contract sends a message to another, and is halted until any effects are caused and it receives any reply from them. Achieving wholly synchronous inter-chain communication is something that I threw out of the window 30 seconds into the design of Polkadot. For active communication, Polkadot’s parallelisation means that it must be asynchronous, so token transfers between chains, for example, will need to be async.

For passive communication however, there is no such requirement needed. Given any witness data, Polkadot parachains will be able to interpret other parachains’ recent states instantly and trustlessly.

Transaction throughput doesn’t really come into it - it’s all about the fact that it’s an architecture built for large-scale parallelism from the ground-up.

A lot of the same concepts will apply to DeepBrain Chain as well, so take note of the Transaction throughput doesn’t come into play. It scales as much as we want to scale the network.

Software Requirements?

Currently DeepBrain Chain nodes will only run on Linux, macOS, Docker and Kubernetes . We plan to support Windows in the near future.

Parity Technologies

“Parity Technologies is a core blockchain infrastructure company. They are creating an open source creative commons that will enable people to create better institutions through technology.” - Parity

Parity Technologies is the organization behind Substrate. They offer an array of products that are all open source.

Substrate

“Substrate is a blockchain platform with a completely generic State Transition Function ( STF ) and modular components for consensus, networking and configuration.” -Parity

DeepBrain Chain has chosen to use the Parity Substrate blockchain framework to build off of.

We will provide links and material to Substrate to ease the needs of future development.

Links

Useful external links.

DeepBrain Chain

Parity Technologies