The Dragonchain blockchain platform encompasses the development of an internal blockchain platform that provides an secure foundation providing non-repudiation, an network wide common interface, cryptographic capabilities, and efficient distribution of data to the edge.
Dragonchain architecture represents a fast-paced emerging technology foundation for businesses with which to integrate and apply toward identified business problems and use cases. Businesses can develop and track assets more efficiently, deploy the use of cryptographic smart contracts within business workflows to increase efficiency across enterprise systems, and accelerate innovation.
This platform will allow ease of integration for real business applications. There is a growing need for simplified blockchain integration. The decentralized and singular approach to blockchain implementation is sometimes at odds with the real business need to protect information and control business processes. The Dragonchain blockchain platform seeks to solve these needs.
- Ease of integration of existing systems
- Ease of development for traditional engineers and coders unfamiliar with blockchain, distributed systems, and cryptography
- Client server style and simple RESTful integration points for business integration
- Simple architecture (flexible and usable for unforeseen applications)
- Provide protection of business data by default
- Allow business focused control of processes
- Fixed length period blocks
- Short/fast blocks
- Currency agnostic blockchain (multicurrency support)
- No base currency
- Interoperability with other blockchains public and private
- Adoption of standards as they become available (see W3C Blockchain Community Group blockchain standardization)
- Dragonchain Organization
- Dragonchain Architecture Document
- Dragonchain Architecture Document DRAFT for comment
Slack Team: Dragonchain Slack Team Slack Support Channel: #support Email: support@dragonchain.org
Joe Roets (j03) joe@dragonchain.org
Dragonchain utilized Python 2.7
To install Python library dependencies, run the following:
pip install -r requirements.txt
Message classes and RMI services are generated by thrift templates. If you have Apache Thrift installed you can regenerate these classes by using the gen_thrift setup command:
python setup.py gen_thrift
- Signing Key Generation
openssl ecparam -name secp224r1 -genkey -out <Dragonchain Home>/pki/sk.pem
- Verifying Key Generation
openssl ec -in sk.pem -pubout -out <Dragonchain Home>/pki/pk.pem
python <Dragonchain Home>/blockchain/transaction_svc.py --private-key <Dragonchain Home>/pki/sk.pem --public-key <Dragonchain Home>/pki/pk.pem
python <Dragonchain Home>/blockchain/query_svc.py --private-key <Dragonchain Home>/pki/sk.pem --public-key <Dragonchain Home>/pki/pk.pem
python <Dragonchain Home>/blockchain/processing.py --private-key <Dragonchain Home>/pki/sk.pem --public-key <Dragonchain Home>/pki/pk.pem
--private-key (required - signing key for transaction service and processing module)
--public-key (required)
--host (defaults to localhost)
--port, -p (defaults to 8080)
--phase (required)
Configuration within yaml files within configs directory.
BLOCKCHAIN_DB_HOSTNAME
= Hostname of the database instance (default localhost)
BLOCKCHAIN_DB_PORT
= Port of the database server (default 5432)
BLOCKCHAIN_DB_USERNAME
= Database username (default blocky)
BLOCKCHAIN_DB_PASSWORD
= Database password (default None)
BLOCKCHAIN_DB_NAME
= Blockchain database (default blockchain, also selects .yaml
config and log file with same name)
Dragonchain uses a standard Feature Branch Workflow.
All feature development should take place in Git branch dedicated to that feature. A feature branch should be named starting with the ticket ID followed by a dash and a short description.
Issues are tracked within Github: Dragonchain Issues
Code should follow the PEP 8 Style Guide for Python code where possible.
- Joe Roets - Principal Architect / Vision
- Eileen Quenin - Product Manager / Evangelist
- Brandon Kite - Lead Developer
- Dylan Yelton - Developer
- Michael Bachtel - DevOps / Developer
- Lucas Ontivero - Developer
- Adam Bronfin - Developer / Reviewer
- Benjamin Israelson - Developer / Reviewer
- Forrest Fisher - Program Manager
- Robbin Schill - Program Manager
- Krassi Krustev - Developer
- Rob Eickmann - iOS Developer
- Sean Ochoa - DevOps / Sysadmin
- Paul Sonier - Developer / Reviewer
- Steve Owens - Reviewer
- Mark LaPerriere - Reviewer
- Kevin Duane - Reviewer
- Chris Moore - Reviewer
- Brian J Wilson - Architect
Copyright 2016 Disney Connected and Advanced Technologies
Licensed under the Apache License, Version 2.0 (the "Apache License")
with the following modification; you may not use this file except in
compliance with the Apache License and the following modification to it:
Section 6. Trademarks. is deleted and replaced with:
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor
and its affiliates, except as required to comply with Section 4(c) of
the License and to reproduce the content of the NOTICE file.
You may obtain a copy of the Apache License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the Apache License with the above modification is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the Apache License for the specific
language governing permissions and limitations under the Apache License.