Categories
Blockchain Newsroom

Espeo is Recognized by Techreviewer as a Top Blockchain Development Company in 2021

Espeo has been named one of the top machine blockchain development companies by Techreviewer.co: https://techreviewer.co/top-blockchain-development-companies. The list of leaders was compiled based on expertise, experience, quality of services, and reliability of the development companies. To make an assessment Techreviewer collected information about our services and client’s reviews. Their research placed us in the list of top blockchain companies out of over 500 competitors.

Blockchain technology is beneficial in specific industries where people can’t trust one another, and where smart contracts will facilitate transactions between various actors. Real estate tokenization is one promising field. Supply chain management is another. Blockchain technology, however, may not be the answer to everything.

Techreviewer conducts annual research and regularly updates market leader lists. Analysts’ findings help those who are looking for service providers of complex technical tasks.


Espeo is known to be headquartered in Poland, Poznań. The company started its work 13 years ago – in 2008, and now specializes in custom web and mobile applications, consulting services as well as project management and quality assurance to keep their clients on the cutting edge.
 
Espeo is a reliable service provider of high-class blockchain development services and business solutions for companies of any industry. Possessing deep practical knowledge in various fields, the company helps its clients to solve their business challenges as soon as possible, while maintaining high quality and efficiency.
 
About TechReviewer.co
Techreviewer is an independent IT market research and analysis company. The platform helps to find the best companies that provide high-quality IT services for technical support, development, system integration, AI, Big Data, and business analysis. As a result of objective market analysis, the Techreviewer platform determines the most successful and reliable IT companies and makes top ratings for each of the service categories. Techreviewer’s ranking lists help organizations select the right technology partner for their business needs.

Categories
Blockchain Financial Services

Pros and cons of blockchain: Do I even need one?

Many blockchain enthusiasts push grand notions of how the technology will upend legacy industries, slash middlemen, and revolutionize the world as we know it. While this is arguably true, many fail to fully weigh the advantages and disadvantages of blockchain. There are a few limitations to consider.

Blockchain technology is beneficial in specific industries where people can’t trust one another, and where smart contracts will facilitate transactions between various actors. Real estate tokenization is one promising field. Supply chain management is another. Blockchain technology, however, may not be the answer to everything.

By design, one should use blockchain in order to establish trust through cryptography. Parties don’t have to trust each other or third parties in other words. But data consensus, so far at least, remains slow. Existing tech is far more efficient and cheaper to implement for many other features. If you’re in an industry where you can trust the parties involved, or where a trusted third party exists, look for other solutions.

Make no mistake, we at Espeo Blockchain strongly believe in the transformative properties of distributed ledger technology. Deciding whether blockchain will solve any meaningful business challenges is an essential part of what a blockchain advisor should do.

In this article, I’ll unpack what blockchains do well, and what they’re good at managing. But the main takeaway here is to carefully weigh the pros and cons of blockchain and decide if you really need one in your business, or not.

Cryptocurrency craze

At the height of the cryptocurrency craze in late 2017, investors flocked to any projects that claimed to employ blockchain. Poor understanding and blind optimism towards cryptocurrencies drove the market. Luckily, regulatory attention — and healthy skepticism in the market — have largely weeded these projects out. Many projects launched without consulting a blockchain advisor or a sound business plan. Nevertheless, some proponents still proclaim distributed ledger technology has all the answers.

That’s not to say that blockchain cannot address real business challenges, just that other technologies are likely a better fit. Many problems blockchain proponents say the technology will solve are still a long way off. Perhaps other solutions will improve your processes.

What are the advantages of blockchain?

Shashank Pettakar, editor of Data-Driven Investor writes “blockchain represents a significant advancement in data management. Its most prized feature is that it facilitates consensus within a trustless environment. Through an incentive system, a set of actors who have no reason to trust one another can [agree on the truth] before it is added to the chain.”

Thanks to its decentralized nature and distributed technology, blockchains remove any single point of failure in a network of devices. Looking at the benefits of blockchain, this is a huge plus. Designing the ledger as a peer-to-peer network with complete knowledge replication makes this possible. This also increases availability and enables any node to read the data accepted by the entire network.

For deeper dives into blockchain technology, here’s a list of blockchain books we’ve read and recommend.

Trustless consensus

Trustless consensus removes the need for trusted middlemen and spreads the burden of data management to individual devices, or nodes. Let’s say you want to invest in property, for example. A blockchain platform can seamlessly ensure that a seller holds the deed and that a buyer has secured financing. Currently, this process involves several intermediaries who do not share a common database and may not work together. In turn, this increases the time and cost of a property sale.

Companies that rely on several different actors who they might not trust may benefit from blockchain infrastructure.

Though a blockchain’s trustless consensus ensures the data is accurate, it tends to be slow. It only gets slower as a blockchain expands and adds more nodes. However, in case of such business models as the above-mentioned property example, this could work since smart contracts can automatically verify data through consensus.

One of the most frustrating blockchain limitations is the speed of transactions. Digital currencies aspire to replace fiat money and the grubby central banks that print it. Removing the intermediaries from the equation, believers claim, will democratize the system and allow individuals to transact directly without additional transaction fees.

A bankless world has yet to pan out, of course. Central databases, after all, are far faster at processing transactions. Any industry applications that require faster transactions should look elsewhere for solutions — for now. Any blockchain advisor worth his salt should divulge this fact.

Immutability – one of the biggest advantages of blockchain technology

In addition to verifying data, distributed ledgers also ensure that once written on the blockchain cannot be changed — also known as immutability. Blockchain Immutability is especially useful for managing contractual relationships or tracking transaction histories. However, this assumes that those who can write data onto a blockchain network are entering legitimate data in the first place. It’s also far from confidential, as anyone involved can see transactions.

Due to a blockchain’s immutability, users – contrary to conventional databases can only change information by adding new data to the existing log. This nature of blockchain guarantees that the database is complete and consistent and that all users can audit the data. Replicating a complete, globally ordered log of transactions across the network allows each node to derive a current state of processing which makes it possible to issue, verify, and accept transactions deemed accurate through consensus.

Consensus algorithms and full replication make sure malicious actors can’t write to the chain and spoil it. If everyone needs to save a transaction on their node, potential fraud gets denied. Of course, this assumes that all the users will use the network appropriately and not write frivolous or redundant transactions. If you can’t trust users to write data on the ledger, or if actors’ goals are not aligned, blockchain may help solve this. But if you can trust all the actors who can write to the chain and their goals are aligned, you don’t really need blockchain.

Decentralized, distributed

Almost as gimmicky as blockchain itself for some is the idea of decentralization. Blockchain-based applications remove any single point of failure by replicating all of the data on every single node in the network. Nevertheless, in some cases, traditional databases can do the same for far cheaper.

Trusted third parties can often deliver on the claims more efficiently than a blockchain. If you can’t trust a third party — or if one doesn’t exist, blockchain shows promising real-world use cases. In an environment where there is a trusted third party, blockchain advantages are currently dubious.

Pros and cons of blockchain

Looking beyond the blockchain technology pros and key benefits, there are some caveats. One of the main shortcomings in the current technology is, as I’ve mentioned, the transaction time. Verifying a transaction across the blockchain remains a relatively slow process — one that slows as blockchains expand and store more data. Sometimes, a simple database will do the job faster and cheaper.

Take Hyperledger Sawtooth for example. Transaction times can reach upwards of three seconds on average. It can also only handle about sixty transactions per second. Such delayed transaction latency makes any blockchain solutions cumbersome for industries that require rapid transactions like i.e. financial sector. The cost to commit a transaction also rises considerably as more data gets stored on a blockchain.

Blockchain use cases

Many cite international trade as one of a couple of industries with a solid argument for the blockchain network. In early 2018, shipping giant Maersk partnered with IBM, and launched a blockchain-enabled global supply chain management system called TradeLens. According to a company press release, the technology empowers diverse trading partners to establish “a single shared view of a transaction without compromising details, privacy or confidentiality.”

In theory, this is a good fit for blockchain. There is a web of shipping companies, port authorities, and customs agencies that must coordinate throughout the shipping process. In practice, however, Maersk still owns the intellectual property and will likely see the greatest share of the profits. Unsurprisingly, this limits its adoption among Maersk’s competitors.

While analyzing the potential use of blockchain – supply chain management should be a good fit for the technology. Some other use cases also work well. Complex systems can benefit from an auditable, unchangeable record of shipments that all parties involved can access. Needless time and resources go into exchanging data between separate databases. Falsified data is also common. Coordinating different companies’ records with customs authorities in each port improves an already complex mire of data. Transparency and traceability also increase efficiency in the global supply chain.

Supply chain companies store huge amounts of data and track this data in a space largely without trusted middlemen. Each port authority and customs authority operate on different databases. Shipping companies have to show a transfer of goods and prove it. When all parties see the same data and can verify shipment, receipt, and customs clearance, this cuts costs and streamlines the whole system. Admittedly, a more neutral platform will go a long way to increase adoption among competing companies.

When a database is more efficient

Meanwhile, blockchain-based solutions that aim to verify documents such as Learning Machine’s document verification tool may as well use existing technology. Users receive documents such as university diplomas or certificates which can be independently verified by another user without intermediaries. Currently, in order to verify a diploma or transcript, especially across borders, people have to send the document off for an apostille from an education ministry, or other central authority.

Developers claim it will eliminate forgeries and reduce bureaucracy — which may be true. However, developing a blockchain capability may needlessly add cost and complexity to a project. In situations where there is widespread fraud, a blockchain can help verify original copies. But where there isn’t, a centralized database is far more efficient. Universities and government ministries are fairly good at this already and may implement other technology to improve their processes. Tools that have been in place for decades, such as relational databases could address this for a fraction of the cost. Again, the dilemma is adoption among various institutions. A sober look at all the advantages and disadvantages of blockchain is necessary to decide if it’s addressing a real need. Here, a trusted blockchain advisor might offer invaluable insight.

Conclusion – pros of blockchain and its disadvantages

It’s important to weigh what makes blockchain useful and what are the weaknesses of blockchain in the context of your business. Consult a trusted blockchain advisor who will be frank about the technology’s limitations. An honest blockchain advisor will talk openly about the best applications. Blockchain is, after all, is a slow database. There may be faster, cheaper, more efficient solutions as I’ve mentioned. In short, don’t be seduced by the hype. That said, by design, key features include:

  • No single point of failure
  • Permanent, append-only log of transactions verified through consensus
  • Trustless consensus

If you can introduce a trusted third party, they can achieve the other guarantees using different technology. Trust is the main issue here. If you can’t trust an intermediary with data, blockchain independently verifies transactions. If you weigh the pros and cons of blockchain and you can’t trust all the parties involved — definitely consider the technology. You need to sit down with a good blockchain advisor and figure out if blockchain makes sense for what you’re trying to do, and whether you should embrace the revolution.


Would you like to learn more about blockchain-based solutions or are interested in implementing blockchain solutions in your company? We are a certified blockchain technology provider and are here to help you with powerful enterprise-permissioned blockchain apps. Contact us!

Categories
Blockchain Software Technology

Essential tips for effective blockchain project management

Here at Espeo Blockchain, we live and breathe blockchain every day. Our team is hard at work creating exciting new projects and is constantly gaining new expertise. But have you ever wondered what sets Espeo’s blockchain project management apart from other developers? Building rapport with clients and robust blockchain advisory services are just a few things. I caught up with a few of our friendly project managers to hear their essential tips for successful blockchain project management.

Constant contact with clients is an essential part of our process. Keeping a finger on the pulse at all stages of the process is one of our project managers’ key tasks.

Know your team

Knowing the development team on a personal level builds rapport and trust between developers and clients. This is essential because it’s important to see results and encourages responsibility. An open environment drives developers to come up with novel solutions.

Espeo’s head of blockchain Dominik Zyskowski’s approach to blockchain project management is to foster effective communication between developers and the client. Usually, it gets to the point where clients learn the developers’ names and stories. Clients are not used to such a personal bond with a team. Since so many projects are based abroad, knowing that the team is taking care of the project everything — and that the team is focused — really sets Espeo Blockchain apart.

Dominik is transparent about a lot of things. He would like to see blockchain voting systems improve democracy and increase democratic participation. Nevertheless, he openly admits blockchain’s limitations. His honesty is something clients admire. As an experienced project manager and blockchain advisor, Dominik has worked on several of Espeo’s successful projects.

One that he thought was especially interesting was blocsport.one, in which he provided blockchain advisory services. The sporting startup worked with Espeo to build a Hyperledger Fabric-powered commission management platform. He was instrumental in technical consulting and delivered the product well under budget.

In addition to consulting, Espeo developers also designed network architecture and built the working application.

Unlike some of the early coin offerings, projects now have to have a solid product and a seamless plan in order to succeed. Dominik remains optimistic that the market is far healthier now since many of the scams and poorly-planned ICOs never get off the ground.

Knowing your development team builds trust and keeps everyone involved engaged throughout the process. Staying engaged and opening the process to transparent critique from everyone involved ensures the end project will be viable, and ultimately profitable.

Work with a company with a personal approach

Blockchain project development is not a speedy process. A lot of research and planning goes into each project. No two projects are the same and each poses unique challenges. Working with an engaged team of experts with your best interests in mind guarantees results. Simply getting to know the experts on the team, of course, builds trust. But the team should also apply their knowledge in unique ways. Small tweaks specifically designed for a project often lead to lower costs. According to Dominik:

“We are not trying to repeat the same project over and over, but we explore what’s happening in the area and try to propose the most beneficial solutions. I often talk to clients and they always value our approach. They really see the team, they can talk with them, they see our efforts along the way.”

But don’t just take our word for it. Melissa Christian, business manager of the Guardian Soulmates project commented:

“Espeo excels at project management. Using a combination of tools and technology, they maintain an open and responsive line of dialogue. The enthusiastic and dedicated team offers full-stack development expertise for frontend and backend.”

Our project managers not only create an environment where the developers and client bond, but also come up with the best solutions to solve specific problems. This personalized approach ends up slashing time and costs from blockchain projects.

Choose an expert team that will be honest with you

Just as knowing your team and getting a personalized approach ensures success, having a team that will be honest with you will help tremendously in the long run. Honest experts know when to say that blockchain may not be right for a project no matter how enthusiastic a client may be about the technology. Communicating realistic solutions and ensuring a client understands the process is essential to good project management.

Both Dominik and project manager, Sylwia Borska agree that equality, transparency, and constant communication ensure satisfied clients and developers. Happy developers are more likely to open up and remain transparent. Sylwia manages blockchain projects and has extensive experience in standard software development as well. She works hard to keep team morale high.

“As in any project,” says Borska, “we have to navigate between being sympathetic and effective. If we lack developers with a specific skill — like there’s some new implementation we’re not familiar with, we often bring in people who can stir the team in the right direction.”

Blockchain projects differ from regular software development in a few ways. First, since blockchain technology is relatively new, some entrepreneurs lack deep technical understanding. Unlike developing an app where the client knows more or less what to expect and how the app should work, blockchain projects are rarely as straightforward. Sometimes clients underestimate the cost and complexity that goes into blockchain project management. Having an honest guide throughout the process builds trust and keeps clients in the loop.

You don’t have to know everything about blockchain

Those unfamiliar with development projects may benefit from blockchain advisory services. But with so many so-called experts and conflicting information in the space, it can get confusing. Choosing a team with successful projects shows results and demonstrates expertise.

“Even a non-tech person can provide precise information about how [a product] should work and what features it should have,” says Dominik. “It’s more complicated when you do blockchain projects. The client needs to know how blockchain will be beneficial in a project. For instance, if you’re building a tool for invoice processing, for example, he or she also needs to take into account the network architecture and governance.”

Dominik guides clients as part of our blockchain advisory services, breaking down the mechanism and how blockchain can improve a business. Sometimes they even advise that blockchain is not the best solution and propose optimal solutions. Blockchain’s pros and cons should be vital discussion in any consulting discussion.

Choose legitimate (and honest) blockchain advisory services

Responsible developers and project managers care about the products they create. Before a development project begins, there should be an extensive discussion about how the finished product will work. A blockchain advisor may help solidify big blockchain ideas or encourage different solutions.

Dominik openly admits that blockchain is not always reasonable, or justified. Due to the hype surrounding blockchain, many entrepreneurs try to use blockchain where existing technology would do a better job.

“Our role is to sometimes tell a client that it’s not the best idea to use blockchain. It may incur costs and slow down the process for you. If you you’ve only got a small network of people you trust, for example.”

Entrepreneurs hoping to run a blockchain app to reduce costs need a solid plan in place. Unpacking all the different layers of complexity will help you start your blockchain project right. Speaking to someone who knows the intricacies of blockchain development and its business use can be invaluable before a project starts.

Hire a team with proven blockchain project management success

A proven portfolio of successful blockchain projects demonstrates expertise in the field. Due diligence in researching past accomplishments of a team is also important when you’re choosing developers. Search for what previous clients are saying and company portfolios. Teams of experts employ industry best practices to save clients money and help launch unique products.

“It really shows that our products were unique,” says Dominik proudly. “We do a lot of research before to get familiar with different small hacks that allow you not to overpay. There are ways to optimize that cost for a client. If some rookie company would develop this kind of system, they wouldn’t consider these types of best practices.”

Attention to fine details to optimize the blockchain projects sets Espeo Blockchain apart from other blockchain advisory services. A full consulting phase before development equips our clients with a firm grasp of technical architecture, and different project protocols. Using our own knowledge, we’re able to work with clients for the best blockchain development solution.

Blockchain project development offers rewards for entrepreneurs who do it right. Follow these essential tips and your big blockchain idea will become a reality. A team of blockchain consulting experts who offer personally tailored solutions will get your project off to a strong start. Honesty and transparency at every step of the development process keep everyone engaged and ensures a robust finished product. Getting an expert opinion in the form of blockchain advisory services also equips entrepreneurs with the trusted technical knowledge to create a seamless blockchain product. A great team yields great results.

Categories
Blockchain Software

Blockchain application development: A simple guide for front-end developers

Blockchain application development is not popular among front-end developers. At all. It only accounts for a tiny fraction of development projects currently. One thing I can’t understand is why so many front-end developers are turned off by blockchain apps. If compared with a traditional application – a decentralized application is not as difficult to program as some people think. In this article, I’ll show you some simple tricks to get you started.

Nowadays in modern application development, I see a tendency to move as much application logic as possible to the browser. Servers are for providing nice APIs, connecting with databases, and storing data. Servers don’t need to push whole templates filled with data anymore. Rendering can happen inside a browser. As demand grows for more dApp development projects, it means more work for front-end developers like me.

Client-server architecture

In the current development process, there is always a server part and a client part. Let’s say I need to write a single-page application (SPA). The framework doesn’t matter — it can be React, Angular or Vue.

I often start to write an application before the server part is ready. In the beginning, I start by mocking data. We can create a simple node app to handle the requests serving basic JSON files as a response or use external services for that. Once the back-end work is done, I abandon the mocks and integrate with real endpoints with the ability to easily switch to the mock version changing ENV variables.

Centralized databases store most of the data we produce and send. There is always a server somewhere. It can be an AWS virtual machine or even a computer in the basement. It doesn’t matter, in most cases, though, some centralized entity stores our data. What’s wrong with that? Well, it means we have to trust the company which handles our data.

Everything is fine if the company properly secures our data, and they’re backing it up in a different physical location. In the case of some cataclysm, we will not lose our data. However, In real life, we are not always in such a perfect situation. The history of the internet is full of situations when some hosting providers removed data accidentally with no option to restore it.

Blockchain development to the rescue

With blockchain technology, there are fewer client-server architecture boundaries. In some cases, we can remove the server totally to be fully independent. In others there is a small server code part as an addition to the blockchain node, to store data without any delays and with immediate access. Blockchains copy data and distribute it to a decentralized network. Even if a few computers crash, the data will still be there.

I’m not a blockchain developer should I care?

Yes! You can still work with the technologies you love such as React, but in place of a server, there will be a blockchain application.

But how is it even possible without traditional centralized servers?
In some cases, it is possible to remove a traditional server. Instead of calling our server with a simple AJAX request, we will be calling any of the nodes creating the blockchain network (via web3 API). In the next paragraphs, I’ll show you how.

Connecting to the blockchain

The first thing to do when you start a dApp development project is to download the web3 library. It’s available in npm. You can attach it to your package.json like any classic dependency. It exists in 2 versions 0.* which is a stable version with callback-based implementation and 1.* version which is currently in beta but gives a fully Promise-based interface. Hopefully, a stable version will launch soon.

The simplest scenario is a publicly-available website that is just reading data from a blockchain. This is a very common use case for ICO projects. There is a website that displays specific information like the status of the network. Such methods are always publicly available and don’t require any operations on your wallet.

Assuming you have web3 in your dependencies you can simply import it in your module:

The next thing to do will be to initialize your web3 object. To do that you need web3Provider. For simplicity in my example, instead of hosting my own blockchain node, I used Infura, which is a free blockchain infrastructure provider. In this scenario, I use the rinkeby test network.

I have an instance of Web3 object initialized. Next step will be to create a contract instance.

Contract instance

You may notice in the above lines that something is missing. To create a contract instance you need contractAbi and contractAddress. A contract address is a unique ID in the network in which our contract deployed. It takes 40 bytes of data and always starts with ‘0x’
Contract Abi is json that represents all methods in our contract. It determines how we should call specific methods what parameters are required and what we will receive as an output.

In the example above, the Abi JSON has only one function ‘testMethod’ which takes one input parameter which should be a valid Ethereum address, then it is doing something we don’t know and in response, it returns a bool value of true or false. When thinking about client-server architecture we can compare abi to classic API endpoints information.

Web3

We know how to use such an endpoint but we need additional documentation to know what the back-end or blockchain app is really doing.
With web3 0.* version calling such method will look as follows:

Because 0.* is callback bases it is always a good practice to wrap contract methods with Promise. Then we can easily stack such methods with async await syntax without nested callback hell.

You can connect your website to an existing blockchain application and display data on it. We can have a simple HTML/js app placed in standard hosting without any back-end technology. The application will behave in the same way located in an external server or on our espeoblockchain.com. All information we want can be taken from the blockchain.

When connecting our js app or simple website with web3 I suggest you use Facade pattern to create an additional layer of interface masking web3 executions, helpful when something will change on the smart contract side.

Non-trivial examples

Often during a dApp development project, we not only read some information, but we also want to make more complex operations. These include transferring funds somewhere, paying for something, etc… In such a case users have to have access to their ETH wallet. The simplest way to allow that is to install Metamask Chrome extension.

Once you install Metamask, you can use web3 to interact with it. There are methods for taking the list of our accounts from Metamask, check in what network Metamask is connected etc. Please check web3 API docs for more information.

Our decentralized web application may be fully dependant on Metamask. Each operation in our wallet (like transferring funds) will open a popup window from Metamask to submit it. It’s a common practice to detect if Metamask exists in the browser. If not, instead of rendering the application we are displaying proper instructions on how to install it and enable it in the browser.

Note about big numbers

As we all know javascript is not perfect when handling big numbers and float types. Most of us are familiar with the problem when calculating float number like 0.1 + 0.2 which is a typical recruitment question for years. For more details related to float arithmetics in javascript please visit this article.

Smart contracts don’t have float numbers, they operate only on int values and on very large ones. How to make it compatible with javascript? There is BigNumber library which is helping with that. All numeric results which we are getting from Smart Contract methods using web3 are in Big Number format. I use the BigNumber API for every calculation. For example, minus, divededBy, plus and finally transferred to readable value for our UI with toNumber, toFixed etc…

Conclusion

Blockchain application development is not going to change the way we develop apps. Front-end developers can still use all the tools they already use just with a few tweaks. Instead of our AJAX calls, we are using Web3 to communicate with the blockchain. All the data that we get from the blockchain is 100% decentralized stored in a ladder in multiple computers in a secure way, but are we fully decentralized? Still, our front-end application, even created with pure HTML/JS will need to be stored somewhere.

For now, we need to rely on our hosting and domain providers and if they crash, our dApps will go offline. Surely in the case of an emergency, we can host it on our computer and successfully connect with blockchain to get crucial data. Still, there is a long way to have a fully decentralized world. Let’s see what the future brings.