Auctus Beta Technical Post #2

Dive a bit into our front end, user authentication, API gateway and microservices

Auctus High Level Architectural Scheme

As promised we’re continuing our Technical Post series up until our beta is launched. In this post we’ll be going over our front end, user authentication, API gateway and some of the microservices that’ll be included in the beta launch.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” C.A.R. Hoare

Our goal is to make the Auctus Platform as easy as possible for tech and non tech savvy users alike. We’re making an inclusive platform to make investing in crypto-assets simple.

Front-End

The access and usability of the front end of any product is extremely important. In order to make adoption as quick as possible we’re releasing the beta for both web and mobile devices.

Don’t worry, you don’t need to be a blockchain expert to use Auctus Platform

In an effort to make the product as inclusive as possible, the final platform will have native Android and IOS applications, but for the beta we’re starting with mobile-friendly design. For beta release, the web layer is being developed using Angular and will have access to the microservices through an API Gateway.

Authentication

Account security is something that’s talked a lot about in blockchain, but really it’s important in any tech. In blockchain, authentication and security can be daunting to non-technical users, so we want to make the authentication process as easy as possible with the most up to date and user friendly tools available on the market. I foresee this process getting even easier in time with new authentication tools being built.

The authentication on each device will be performed in two steps. The first step will require users to create a login using an email and password, configuring the platform off-chain access. The second will require the user to sign an on-chain message. The signature will be through Metamask if on desktop, or through Toshi if mobile. Remember that in order to access the platform (as a user, not an expert) you’ll be asked to hold AUC in your wallet.

API Gateway

The API Gateway provides an integration abstraction layer which exposes through RESTful APIs, all the services needed to interact with the platform backend. The API Gateway layer is an important tool to manage our set of services since the layer will also provide a set of features which will help us secure, control and scale our APIs. To handle the authentication we generate a JSON Web Token (JWT), and then we sign it using HMAC SHA256 algorithm.

At beta release we’ll start with a single microservice, and the next features in the following releases will gradually compose of new microservices.

Auctus Platform Microservices

The backend module of the Auctus platform will consist of a set of microservices developed using the ASP.NET Core 2.1 Framework. Each microservice will be responsible for backend logic such as,

Databases : There will be two types of databases used: SQL (SQL Server) and NoSQL (MongoDB).

: There will be two types of databases used: SQL (SQL Server) and NoSQL (MongoDB). Mailing services : The platform will occasionally send emails for password confirmation and any password or account changes. We’ll be using Sendgrid as the provider.

: The platform will occasionally send emails for password confirmation and any password or account changes. We’ll be using Sendgrid as the provider. Cloud Storage: Media files will be restored on Azure Cloud Storage as images and reports.

The microservices are also responsible for consulting external APIs for retrieving Assets Values data from Coinmarketcap and Goingecko. Those values are used in the entire platform to draw the graphics and show the asset’s performance. To query information on the blockchain we use Infura API.

Continuous Delivery

We want to keep our community close to our development, so that’s why we’re working with tools to make it faster and easier to deploy and test new features. With the use of Visual Studio Team Services we’ll be able to frequently update the Auctus platform so that we can implement new features to test quickly and efficiently.

Upcoming

Now that you have a greater understand about the Beta architecture, on the next post we’ll cover the high level functionalities from the users point of view. If you have any questions or want us to cover an specific topic, please join our chat and talk with us! Also be sure to check our Twitter so you can be part of platform decisions such as layout and features.