Giter Club home page Giter Club logo

tradable-digital-assets-solution-accelerator's Introduction

TDA Banner

About This Repository

This accelerator was designed to provide developers with all of the resources needed to quickly build a solution for trading digital assets, using Azure services. It contains instructions on how to configure and deploy the essential components of a trading system for tokenized digital assets, including: API based creation of smart contracts using ERC token standards, blockchain transaction signing, key management, and integrating with digital wallets.

This repository contains source code, deployment scripts, along with references and tools, to quickly get you up and running with your own solution for trading digital assets. It will speed your understanding of blockchain-based applications and help you build other applications leveraging blockchain tokens.

Prerequisites

In order to successfully deploy this solution accelerator, you will need to have access to and/or provision the following resources:

  1. Access to an Azure Subscription, with required permissions - Required to deploy cloud resources
  2. Visual Studio 2019 or newer version
  3. PowerShell 7.x - Required to run deployment scripts
  4. Azure CLI - Required to run deployment scripts
  5. Postman
  6. Docker Desktop - Required for debugging on your local machine or containerizing codes in the Deployment process

Optional

  1. Visual Studio Code

Architectural Overview

After completion of all steps, you will have a working solution with the architecture shown below.

Microservices Architecture

Azure and Blockchain

We assume you have basic technical knowledge of Azure Cosmos DB, Azure Storage Account, Azure Key Vault, and Azure Kubernetes Services, and are familiar with blockchain platforms such as (Ethereum and Quorum).

This SA leverages Azure Non-Fungible Token Solution Accelerator for managing NFT transactions. Please review Azure Non-Fungible Token Solution Accelerator before you begin this project.

For additional training and support, please see:

  1. Kubernetes
  2. Cosmos DB
  3. Blockchain
  4. KeyVault

Getting Started

This solution accelerator relies on the capabilities developed in the Azure Non-Fungible Token Solution Accelerator.

That accelerator is designed to help manage ERC 721 standard token transactions and can be applied to most any business scenario that can benefit from blockchain technology. Please review the NFT token service accelerator before continuing this project.

Clone/download this repo onto your computer and then walk through each of these steps in order, following the steps outlined in each of the README files.

The resources in this folder can be used to deploy the required cloud services into your Azure Subscription. This can be done either via the Azure Portal or by using the PowerShell script included in the deployment folder.

After resource deployment is complete, you will have these services available: Azure Container Registry, Azure Cosmos DB, Azure Key Vault, Azure Kubernetes Service, and Azure Storage.

Resources can also be deployed into your Azure Subscription by using one of these Deploy Azure links:

Deploy to Azure    Deploy To Azure US Gov   

Note: Follow all steps from "Step 3" in Resources Deployment to configure managed identity permissions, if you have deployed resources using one of these Azure links.

Deploy applications using a PowerShell script that will deploy source code from the repo to Azure resources.

This Windows Client Application can be used to test and demonstrate the solution. Additionally, you can use this documentation for testing APIs using Postman.

Folders

Refer to the following folders to learn about the solution components specific to Azure Tradable Digital Assets Solution Accelerators.

  • deployment: Contains ARM template, resource deployment script, application deployment script, and documentation to facilitate deployment of Azure resources and applications.
  • documents: Contains client app and postman documentation, and screenshots for this solution accelerator.
  • src: Contains all source code for this solution accelerator

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Resources:

License

Copyright (c) Microsoft Corporation

All rights reserved.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE

Security

Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include Microsoft, Azure, DotNet, AspNet, Xamarin, and our GitHub organizations.

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's Microsoft's definition of a security vulnerability, please report it to us as described here: Reporting Security Issues

Please do not report security vulnerabilities through public GitHub issues or any other public forum.

Privacy

When you deploy this template, Microsoft is able to identify the installation of the software with the Azure resources that are deployed. Microsoft is able to correlate the Azure resources that are used to support the software. Microsoft collects this information to provide the best experiences with their products and to operate their business. The data is collected and governed by Microsoft's privacy policies, which can be found at Microsoft Privacy Statement.

To disable this, simply remove the following section from main.json before deploying the resources to Azure:

{
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "2021-04-01",
    "name": "pid-061ff772-6c53-588a-8308-3c4e26553581",
    "properties": {
    "mode": "Incremental",
    "template": {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": []
    }
    }
}

You can see more information on this at https://docs.microsoft.com/en-us/azure/marketplace/azure-partner-customer-usage-attribution.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

Support

How to file issues and get help

This project uses GitHub Issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.

Microsoft Support Policy

Support for this project is limited to the resources listed above.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Notices

Do Not Translate or Localize

This software incorporates material from third parties. Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com, or you may send a check or money order for US $5.00, including the product name, the open source component name, platform, and version number, to:

Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA

Notwithstanding any other terms, you may reverse engineer this software to the extent required to debug changes to any libraries licensed under the GNU Lesser General Public License.

tradable-digital-assets-solution-accelerator's People

Contributors

alvesfabi avatar dongbumlee avatar ericgf19 avatar microsoft-github-operations[bot] avatar microsoftopensource avatar sb141 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tradable-digital-assets-solution-accelerator's Issues

AKS Version Indicated in Setup Script Is No Longer Available

I am trying to deploy this accelerator, and I was consistently getting errors that verion 1.21.9 of AKS is not available in the selected region. I did az aks get-versions --location to find the versions that were available in my region and chose one, then updated the template in the Azure Portal to reflect my chosen version.

It worked fine after that. Not sure if there is anything that can be done to dynamically select a version that is available at runtime instead of hard-coding it.

ACTION REQUIRED: Microsoft needs this private repository to complete compliance info

There are open compliance tasks that need to be reviewed for your Tradable-Digital-Assets-Solution-Accelerator repo.

Action required: 4 compliance tasks

To bring this repository to the standard required for 2021, we require administrators of this and all Microsoft GitHub repositories to complete a small set of tasks within the next 60 days. This is critical work to ensure the compliance and security of your microsoft GitHub organization.

Please take a few minutes to complete the tasks at: https://repos.opensource.microsoft.com/orgs/microsoft/repos/Tradable-Digital-Assets-Solution-Accelerator/compliance

  • The GitHub AE (GitHub inside Microsoft) migration survey has not been completed for this private repository
  • No Service Tree mapping has been set for this repo. If this team does not use Service Tree, they can also opt-out of providing Service Tree data in the Compliance tab.
  • No repository maintainers are set. The Open Source Maintainers are the decision-makers and actionable owners of the repository, irrespective of administrator permission grants on GitHub.
  • Classification of the repository as production/non-production is missing in the Compliance tab.

You can close this work item once you have completed the compliance tasks, or it will automatically close within a day of taking action.

If you no longer need this repository, it might be quickest to delete the repo, too.

GitHub inside Microsoft program information

More information about GitHub inside Microsoft and the new GitHub AE product can be found at https://aka.ms/gim.

FYI: current admins at Microsoft include @zhshen, @venuvedam, @simonrhart, @harvinchou, @ngiin, @neolursa, @rsnarski, @Dongbumlee, @malirezai, @smiddle, @deepthiprasad, @marktayl1, @ushakrishnan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.