
A seasoned software engineer with expertise in cloud-native development, data transformation, and blockchain technologies. I've worked with companies such as the London Stock Exchange Group, HCL Software, and Accenture, focusing on Java development, blockchain deployments, and smart contracts. My expertise includes AWS, Hyperledger Fabric, Ethereum, Docker, Kubernetes, and Python.
Senior Software Engineer
London Stock Exchange Group(LSEG)Senior Software Engineer - I
HCL SoftwareSenior Application Development Analyst
Accenture Solutions Pvt. Ltd.
Kubernetes

GKE

EKS
.png)
Docker

Ansible

Helm

Jmeter

Selenium

Solidity
.png)
Hyperledger Fabric

Python

Java

Ethereum

Apache JMeter
AWS (Amazon Web Services)
Project 1: WORLD CHECK ONE(WC1):
Projects:
Project 1: Integration Platform(ITX/HIP):
Project 2: HIP-Adapters:
Project 3: Unica-HIP:
Project 1: hyperledger/bevel: https://github.com/hyperledger/bevel#contributors-
Project 2: Supplychain management of hardware:
Project 3: Transport Management:
Project 4: Bulk Cargo
Project 5: Deployment of Blockchain Assets
Hi. Hi. My name is Deepak Kumar, and I completed my MTech from an IT outlet. And then after that, I joined Accenture as a blockchain developer. I worked there as a blockchain developer, mostly looking into and hyperlocal fabric. I worked on a blockchain accelerator framework app, which is now called Bevel, an open-source project in the Linux Foundation under the Hyperledger project. So, I have a significant amount of contribution in this project, which is open-source. After that, I worked on Kubernetes. In my second company, I spent time on Kubernetes. So, I was a Kubernetes engineer there. I worked on Java and other stuff. Right now, I'm working at the London Stock Exchange Group as a senior software engineer. And here, I'm mostly working with Spring and Spring frameworks, as well as AWS, Docker, and other things.
In designing a blockchain-based authentication system, how would you ensure secure communication between hosted microservices? Based on an authentic system, how do you ensure secure communication between hosted microservices? So while designing a blockchain-based authentication system, in that case, I would design a system where if there is a requirement to get authenticated using a microservice or interact with AWS microservices hosted in AWS, I would create an active directory in AWS to store keys generated from the blockchain system. Once those microservices are verified, they would have a separate service to handle this, which would fetch keys from the active directory whenever another system wants to communicate with it. These keys are randomly generated or hash-based, and the blockchain system would store them in the active directory. One microservice would then pick up these keys and verify the hash, allowing systems to communicate with the microservice if the hash matches. There can be other ways to achieve this. Another approach would be to store a hash of each person in the blockchain system, and whenever a microservice wants to interact with another service, it would pitch the hash to the blockchain and verify it. If the hash matches, it would allow the person or service to interact with the microservice. The design details would depend on the specific requirements.
Why would be the best what would be the best strategy to handle data synchronizing between a hyperledger private blockchain and a half public 30-minute network? To handle data synchronization between Hyperledger and a private blockchain, I think this can be handled by synchronizing the hybrid and private blockchain with the Ethereum network. This can be done by implementing a mechanism where the hybrid private blockchain fetches the data from the Ethereum network whenever there is a transaction or after a certain interval of time. Then, it uses an algorithm to verify the authenticity of the data, and then stores it in the blocks. Otherwise, in the private blockchain, whether the data is synchronized or not, I think this is a key consideration.
So we would be running a Node.js-based RESTful service. So and we will have the third-party library, which will invoke the chain code of the Hyperledger. And once that library, which is being provided by Hyperledger, will help us to fetch the chain code. And once we have the chain code, we can go through it one by one, and verify the transactions, whatever the transaction we have in the chain code. Or otherwise, we can also do one thing. We can expose a REST API through Node, which will call the Hyperledger chain code, which will have the logic to verify the transactions that are valid or not. For example, there is a transaction which happened, and let's say we want that whenever there is a transition between A and B, and A has some amount in his wallet if he wants to transfer that to B, we must check first that whether A contains those things or not. So those things will be written in the chain code. In the REST nodes, we just need to expose an API, which will call the chain code, and that chain code will run on the Hyperledger Fabric.
For a scenario with high read and write output, we can optimize a MongoDB database and use it with a MAM blockchain application by implementing the following strategies. In the read scenario, we can shard the database by keeping multiple databases that are distributed, which is a copy of the same database. This way, whenever there is a read operation, it can be read from any of the distributed shard or copy of the database. In the write scenario, we can follow a master-slave architecture. The master will block the other copies of the database so that no other can read or write the data at that time. It will then update the database in all the copies of the databases instantaneously. To further optimize the system, we can put a load balancer in front of the MongoDB. This will direct the blockchain application to different instances randomly whenever it wants to read the data. Whenever the blockchain application wants to write data, it will direct the write operation to the master instance.
I think the key consideration when designing Microsoft's blockchain is that it's intact with the authorized blockchain. So, first of all, we want to see the size of the deployment, so maybe if we see that, the things will be how we are deploying the microservices. Okay? So if it's deployed on a particular VM, we don't need much because we can deploy the dockerized blockchain nodes over the one instance where the microservice is running. But if the microservices are deployed as a dockerized application itself, and maybe let's say it's deployed in a Kubernetes cluster. So maybe we can look into the Kubernetes side where we want to deploy all the microservices there. And at the same time, the blockchain nodes are also running in the cluster. So, actually, I would suggest deploying it on the Kubernetes cluster because that will handle all the things gracefully. But while the considerations mainly are that whether these are all able to interact with the blockchain nodes and which microservice is going to interact with which nodes. Those things have to be taken into consideration. Then, like that, we have to take these things into consideration.
So I think here, we are checking if error is not equal to nil. So if it is no error, then we are saying shim error failed to get state for the key. That is actually wrong. Instead of that, we would be doing if error is not equal to nil. Okay. Then we will read the value inside that. Else, we will say that we will return error failed to get the state of the key. So if error is not equal to nil, then we should be placing whatever we have in the LC part. And whatever we have in the else part, it is value equal to nil. So if error is equal to nil, then shim dot error. So it should be error equals nil. Then we should return error. Then we will check for the value. No. Then we'll say not found. Otherwise, we'll print the value.
This is being caused because when we are checking the balance of the sender, if it is greater than the value, first of all, it should be greater than or equal to the value. If it is not, then it will throw an error. So, yeah, it will check if it is greater than the value, then transform the excess balance. Otherwise, it will throw the error. We should be putting a logger statement just after the function to print the value of the sender's amount or the balance the sender has. And after that, we should be putting this. Yeah. We should be putting a debugger at the or maybe before the line to log the value of the amount that the sender has and then the value. By that, we can know just before the function starts and before the require statement.
I would say to minimize the bundle of Python using less libraries. Using all this optimized version of the libraries, so that it can be handled. Or maybe we could deploy the instances as a containerized image, and we can, so whenever there is a load, we can increase the number of containerized images of the nodes. So by that, we can handle that. So whenever there is a greater demand, more operations, we can increase the number of containers of the Python-based.
If you need to perform a complex signing of data from a post SQL database and among ODB collection within a browser, how would you ensure the most efficient process?
I would troubleshoot a distributor denial of service attack and blockchains while maintaining a new service. So I think in order to troubleshoot denial of service attacks on a blockchain, which we can do, we can hit the blockchain node and see why this is denying the service.