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.
Please take the time to review our policies. This will aim to serve everyone better and provide a more streamlined process.
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
- Other conduct which could reasonably be considered inappropriate in a professional setting
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.
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.
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.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributorcovenant.org/version/1/4
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:
- Contributing to DeepBrain Chain Community
As a reminder, all contributors are expected to follow our Code of Conduct.
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]
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.
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 package management via Crates.io.
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 and projects.
What exactly is the DeepBrain Chain Community?
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.
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.
A list of ways to interact with the DBC community.
Telegram is by far the most active communication channel. Please visit us on our main group at t.me/deepbrainchain.
We are exploring Riot as a bridge between chat platforms. It’s not very active at the moment and an ongoing work in progress.
Direct link for Riot
- DeepBrain Chain Official Site
- DeepBrain Chain Team Site
- DeepBrain Chain Community GitHub
- DeepBrain Chain GitHub
We value quality feedback and contribution from everyone. Please feel free to make edits and suggestions as you read through the documentation.
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
Cryptographic primitives used in blockchains such as hashes, elliptic curve cryptography (ECC), and public/private keypairs.
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.
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?
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.
Currently DeepBrain Chain nodes will only run on Linux, macOS, Docker and Kubernetes . We plan to support Windows in the near future.
“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
“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.
Useful external links.