software engineer and architect at https://mycrypto.tools
As an introduction, mycrypto.tools was founded in 2019 to solve and clarify the cryptocurrency — Bitcoin and Ethereum — private-public key and address generation issues.
For example, mycrypto.tools aims to answer questions such as “How can I create my Bitcoin — Ethereum addresses offline?”, without the need to download additional software or buy cryptocurrency wallets, and educate people with step by step simplified courses. More details about mycrypto.tools is explained later in this article.
First and foremost, related to our website, AWS Serverless architecture was selected, because it enables us to build and run our code on the AWS platform without the need to configure and manage physical servers.
Serverless eliminates server management issues such as clustering, provisioning, scaling, patching, and maintenance tasks.
It has also dramatically lowered the cost of operating servers, because we are being charged based on the number of requests to our servers and memory usage for each lambda functions.
Moreover, our business model at mycrypto.tools, such as request-based and asynchronous cryptographic calculations requiring the compute power only, was also allowed us to select and use AWS Serverless architecture.
Let’s have a look at the details of this architecture:
(https://mycrypto.tools AWS Lambda architecture)
AWS Serverless architecture provides agility to develop new functionalities and lowers the cost of ownership of businesses since we don’t need physical or virtual servers to run our code.
It might be not the right, optimal solution for some business types, but for mycrypto.tools, it is being used successfully. AWS Serverless architecture handles the configuration and maintenance of physical/virtual servers in a Virtual Private Network for us — therefore, we don’t need to maintain our servers — This also increases the efficiency of development, meaning that the development becomes more priority than operating servers.
Let’s take a closer look at the services used in mycrypto.tools:
AWS Route53 service forwards domain name requests to our website at mycrypto.tools. Amazon Route53 is a highly available and stable cloud-based Domain Name System (DNS). Route53 connects/forwards user requests to services running in AWS such as CloudFront, S3, AWS Instances, and Load Balancers. It is also very cost-efficient, flexible to add configurations such as health checks, etc.
mycrypto.tools uses AWS API Gateway to scale API requests. Amazon API Gateway is a managed service that can be configured to create, publish, and monitor API requests to AWS Lambda functions at any scale. mycrypto.tools uses Node.js and Java backends with API gateway to process requests. In several locations in the code, AWS SDK is used as well to interact with S3 and other AWS services.
AWS Lambda Serverless architecture was implemented on mycrypto.tools to process requests related to cryptocurrencies such as cryptographic functions and address generation. AWS Lambda technology allows its users to run code without provisioning servers. We only use the computing power of the AWS Cloud platform using Serverless Architecture. Amazon API gateway is also being used to call AWS Lambda functions, which scales well under a heavy workload.
Please refer to our architectural diagram to understand how our platform uses AWS Lambda.
CloudFront is a content delivery network technology that is used by mycrypto.tools. CloudFront is able to integrate and work seamlessly with Amazon S3 for serving static HTML pages with some additional functionalities such as caching etc. It is a secure and programmable content delivery network service.
AWS Certificate Manager allows us to create SSL/TLS certificates to provide additional security while receiving/sending requests to our AWS servers.
AWS Certificate Manager provides provisioning, managing, and deploying public and private SSL/TLS certificates to be used with AWS Services.
Amazon Identity and Access Management is used to provide roles and accesses to AWS services at mycrypto.tools. All permissions are arranged at the IAM level for AWS resources.
DynamoDB was selected to store some of the data created on mycrypto.tools. Data is stored in an unformatted way. DynamoDB is able to handle so many requests at the same time and daily basis. Moreover, it supports scaling and caching, as well.
Amazon SNS allows us to send email messages using as a notification messaging mechanism. It interacts with AWS SES to send emails to mycrypto.tools users.
mycrypo.tools uses AWS CloudWatch to monitor cloud metrics and events. CloudWatch is able to provide us the performance changes, resource utilization, and logs. Using CloudWatch, we are able to set alarms to notify us to incase there is a high-load in our software. We are also able to see logs and metrics to troubleshoot the issues when it is required.
AWS CLI — Command Line Interface allows us to synchronize our development environment with remote resources such as static web pages and AWS Lambda functions. All changes in the local development environment can be synched using command-line interface commands. So, we can use CLI to access Amazon S3 objects.
More information about https://aws.amazon.com/cli/
aws s3 sync . s3://mybucket
AWS SDK — Software Development Kit for Java was selected to be used in AWS Lambda functions. We are able to integrate AWS S3 services and DynamoDB using AWS SDK.
Provides APIs to develop software that interacts with AWS Services.
mycrypto.tools was founded in 2019 to solve secure private and public key generation issues in which users having related to cryptocurrency addresses. We aim to assist users by simplifying address generation for Bitcoin and Ethereum using open-source software and online courses; Our courses teach how to create Bitcoin and Ethereum addresses using a step-by-step approach.
Nowadays, most cryptocurrency wallets on the market seem safe, or they claim that users can store their private keys securely using those wallets. But, those wallets, in general, require users to connect the internet to download their closed-source software.
Because nobody knows how those wallets create private keys — by using which algorithm — users most of the time find them in a position which they cannot understand the details of the private key — public key generation. They cannot do anything about the private key generation because of the lack of understanding and knowledge, which can be quickly learned by anybody with some interest in technology. Moreover, most of those wallets cannot guarantee that private keys are not being exposed to hackers once those devices or software are connected to the internet.
Because of these issues, we — myrcypto.tools — decided to provide secure public/private address generation, which is offline to our users, and educate users about cryptocurrencies. In this way, users will have complete ownership of their cryptocurrency keys. In summary, our users will achieve this by attending our courses; We will provide basic cryptocurrency courses providing all the tools and details to create private-public keys.
mycrypto.tools provide the following online services and tools:
Bitcoin Address Validation — https://mycrypto.tools/btcaddressvalidator.html
Bitcoin addresses have a specific format and length; addresses also have specific characters. Our Bitcoin Address validation checks an address based on those rules using AWS Lambda architecture.
Ethereum Address Validation — https://mycrypto.tools/ethaddressvalidator.html
Ethereum addresses have a specific format and length; addresses also have specific characters. Ethereum Address validation checks an address based on those rules using AWS Lambda architecture and open-source tools.
Bitcoin Address Generator — https://mycrypto.tools/btcaddresssimple.html
Bitcoin Address Generator — Technical version — https://mycrypto.tools/btcaddress.html (detailed explanation of address generation)
Users can generate Bitcoin addresses online by using this address generator based on AWS Lambda — Serverless architecture. The addresses created on this tool are only for educational usage; We never store or log your address generation requests or private keys on our servers.
If you want to learn how Bitcoin Addresses are created, you can read my other article about this topic.
Ethereum Address Generator — https://mycrypto.tools/ethaddress.html
Users can generate Ethereum addresses online by using this address generator based on AWS Lambda — Serverless architecture. The addresses created on this tool are only for educational usage; We never store or log your address generation requests or private keys on our servers.
If you want to learn how Ethereum Addresses are created, you can read my other article about this topic.
Cryptographic Hash Algorithms and Utils — https://mycrypto.tools/hashutils.html
Users can find some of the hash algorithms and utility functions on this page, which can be used online. Here is the list of the algorithms:
SHA3–256 (Secure Hash Algorithm 3)SHA-256 (Secure Hash Algorithm)SHA3–512 (Secure Hash Algorithm 3)RIPEMD160(RIPE Message Digest)MD5HexadecimalBase58 Encode
Tools to encrypt and decrypt Bitcoin and Ethereum addresses and texts — https://mycrypto.tools/encrypt_decrypt_keys.html
Users can use this tool to encrypt and decrypt Bitcoin and Ethereum addresses and texts using AES (Advanced Encryption Standard) algorithm.
Users can find sample Ethereum and Bitcoin addresses by visiting the preceding pages. On these pages, they can find multiple Etheruem and Bitcoin addresses generated by our tools. Addresses include their public and private keys and can be used for educational purposes.
Users can find the latest cryptocurrency prices by visiting these pages. There are also cryptocurrency conversion tools and graphs illustrating the price history etc. The news page is created daily, and users can find daily news on mycrypto.tools.