How to Build a Blockchain Application: A Practical Guide - Idea Usher
How to build a blockchain application

Blockchain technology has taken the globe by storm, introducing new methods to conduct business, manage assets, and secure data. A blockchain is, at its heart, a decentralized and distributed ledger that allows transactions to be recorded and validated in a safe, transparent, and tamper-proof manner. While the technology was initially developed for the cryptocurrency Bitcoin, its potential uses have surpassed digital currencies.

We’ll begin by examining the fundamentals of blockchain technology, including its main elements and how it functions. The many types of blockchains and their numerous uses will next be covered.

Whether you are a masterful developer, possessed with an unquenchable thirst for the creation of your own blockchain application, or an astute business owner keen on harnessing the power of blockchain technology to improve your operational framework, this article will provide you with an abundance of knowledge and insights that will no doubt leave you befuddled yet invigorated.

What are blockchain Apps?

Blockchain apps, also referred to as decentralized applications or DApps, are an intriguing type of software application that operates on a blockchain network. 

These unique applications have been specifically designed to function autonomously, void of a central authority or intermediary, instead leveraging the decentralized and distributed nature of the blockchain to ensure absolute transparency, security, and immutability.

A noteworthy feature that sets blockchain apps apart from traditional applications is that they are not owned and operated by a single entity but are rather constructed on a vast network of nodes that share and validate data. 

This intriguing attribute opens the gateway for enhanced privacy, trust, and accessibility, consequently creating unprecedented opportunities for innovative business models and services that were previously deemed inconceivable.

As blockchain technology is applied to a wide range of sectors and use cases, including social media and gaming as well as financial services and supply chain management, its enormous potential is becoming clearer. Blockchain app development is exploding, and these applications are expected to change the face of many different industries.

We can anticipate a surge in the development of innovative and disruptive blockchain apps in the upcoming years as more and more people realize the enormous capabilities and potential of this cutting-edge technology, opening the door for novel and exciting possibilities that were previously unthinkable.

How does a blockchain application work?

As a blockchain is a decentralized system, it allows for greater security, transparency, and efficiency. Instead of relying on a central authority or server, the blockchain stores data across a network of computers, ensuring that no single entity controls the data. Each block in the chain contains a unique code and data and is validated by network participants, known as nodes. Once a block is added to the chain, it becomes a permanent and unalterable transaction record. This creates a secure and transparent system for recording and sharing information, making it an ideal tool for industries that require reliable and tamper-proof records. Smart contracts can also be used to automate processes and transactions within the blockchain, further enhancing its potential.

cycle blockchain

1. Facilitating a Transaction:

A blockchain transaction is initiated when a user initiates the transfer of digital assets or information. This transaction is broadcast to the network and then validated by other network members.

2. Transaction Verification:

After a transaction is broadcasted to the network, other network users collaborate to verify the transaction. This verification is carried out via nodes and network computers containing a copy of the blockchain. The nodes use complex algorithms to validate the transaction and assure its validity.

3. Formation of New Block:

Once a transaction has been verified, it is amalgamated with other confirmed transactions to form a new block. Each block possesses a distinctive digital signature, known as a hash, which identifies the block and its contents.

4. Proof of Work:

This validation is achieved through a rigorous procedure known as proof-of-work, which necessitates the resolution of a complex mathematical conundrum. This procedure guarantees that no single entity has total control over the blockchain, ensuring that the network operates in a decentralized and democratic fashion.

5. Addition of the New Block in the Blockchain:

In a bewilderingly complex process, a newly verified block is promptly integrated into the labyrinthine blockchain – an exhaustive and ceaselessly updated ledger of all prior transactions, monitored and upheld by every single node on the network.

6. Transaction Complete:

After this intricate and enigmatic process, the transaction is considered finished. The movement of digital assets or information is forever inscribed on the blockchain, and any individual on the network can obtain access to it. Moreover, cryptography safeguards the transaction, providing an unbreakable seal that only approved individuals may breach.

Benefits of Blockchain Apps

The technological marvel that is the blockchain has revolutionized numerous industries through its ability to conduct decentralized, secure, and transparent transactions. Decentralized Applications, or DApps, which are applications that operate on the blockchain, bestow various advantages upon users.

Public Verification

A prime perk of blockchain applications is the public validation of transactions. Blockchain technology permits all transactions to be documented on the blockchain and authenticated by every user on the network. This public validation process guarantees the authenticity and transparency of all transactions, thereby diminishing the likelihood of fraudulent activities.

Privacy

While all transactions on the blockchain are public, users can maintain their privacy by using pseudonymous addresses. This means that users can make transactions without revealing their identity, offering a level of privacy that is impossible with traditional banking systems.

Transparency

The transparency afforded by blockchain applications is a significant asset that benefits both businesses and individuals. Any doubt in the transaction history is erased by making all transactions available on the blockchain, ensuring complete transparency.

Easy Transactions

With blockchain applications, transactions can be executed quickly and efficiently without the need for intermediaries or laborious documentation. This ease of use is another significant advantage of blockchain technology, making transactions seamless and hassle-free.

Enhanced Security

Indubitably perplexing are the blockchain apps which proffer an unparalleled level of security through the use of cryptography to safeguard transactions. In the off chance that a transaction is successfully verified and subsequently recorded on the blockchain, it shall forever remain unaltered and immune to any attempts at deletion, thus ensuring an incorruptible ledger of all past transactions.

Great Cryptocurrency Exchange Experience

The advent of blockchain apps has revolutionized the way in which cryptocurrencies are exchanged, rendering the experience nothing short of exceptional. With its expeditious and straightforward process, users are offered an unparalleled level of security as they can exchange a diverse range of cryptocurrencies without the intervention of any third-party exchange.

Automation

Automating transactions through blockchain apps is a prodigious boon for businesses, as it eliminates the need for manual intervention. By embracing automation, businesses can save valuable time and mitigate the likelihood of human error. This not only enables them to conduct transactions with greater efficiency but also ensures the accuracy of their records.

Increased Efficiency and Speed

The sheer speed and efficiency of this cutting-edge technology are a true marvel. By harnessing the power of the blockchain, transactions are now executed with unparalleled celerity and effortless precision. Obsolete intermediaries and dreary delays no longer threaten the seamless flow of transactions.

Build Better Solutions With Idea Usher

0 +

Professionals

0 +

Projects

The Most Promising industries for DApps Development

Many industries are hailed as being changed forever by blockchain technology. The growing acceptance of DApps based on blockchain technology is evidence of this technology’s potential influence. Decentralized Applications have specific use cases in various industries and were created to operate in a decentralized and trustless environment.

The most well-liked blockchain technology application categories are gaming, gambling, exchanges, wallets, finance, real estate, healthcare, the music industry, e-mobility, IoT startups, and blockchain app development, according to stateofthedapps.com. Let’s explore some sectors where DApps have impacted in more detail.

  • Gaming: Blockchain and cryptocurrency-based games are leading the way in a new world of possibilities for gaming apps. By incorporating blockchain technology, these games guarantee fair gameplay while granting players ownership of their in-game assets. They are becoming increasingly popular due to the safer and more open gaming experience they provide.
  • Finance: Blockchain technology is being used in decentralized finance, or DeFi, which is becoming increasingly popular. DeFi DApps enables users to manage financial assets more effectively and conveniently by enabling financial transactions without using middlemen like banks.
  • Real Estate: DApps are a good fit for the real estate sector as smart contracts can be made using blockchain technology to speed up, reduce costs, and improve security in property transactions. Property owners can also be tracked using this technology, making it possible for rental properties to be managed more effectively.
  • Healthcare: Healthcare is rapidly adopting blockchain technology, with predictions that by 2025, 55% of all healthcare apps will incorporate a blockchain. DApps can be used to securely store and manage patient records, ensuring that they are easily accessible by healthcare providers while maintaining patient privacy.
  • Music Industry: The potential of blockchain technology to administer digital rights and royalties is being investigated by the music industry as well. DApps can be used to manage royalties more openly and effectively, guaranteeing that artist and other stakeholders are fairly compensated.
  • E-mobility: Energy distribution and sales can be managed using DApps, and the e-mobility sector can also use this technology. DApps can manage charging stations, keep track of station usage and ownership, and make it easier to pay for charging services.
  • IoT Startups: The Internet of Things (IoT) has seen a surge in startups exploring using blockchain technology to develop secure and efficient IoT devices. Decentralized Applications (DApps) can securely store and manage data from IoT devices, resulting in improved data privacy and security.
  • Supply Chain: Supply chain management is another area where DApps can be particularly useful. DApps can track products and their movements through the supply chain, ensuring transparency and accountability.

Blockchain app market overview

The global blockchain technology market is experiencing rapid growth and is expected to reach new heights in the coming years. According to industry reports, the market was valued at USD 10.02 billion in 2022 and is predicted to grow at a compound annual growth rate (CAGR) of 87.7% from 2023 to 2030. This growth can be attributed to various factors, including increasing venture capital funding in blockchain technology companies.

blockchain growth
Source  – Grandviewresearch

For example, Circle Internet Financial Ltd., a leading blockchain technology provider, recently announced that it had secured USD 440 million in funding from strategic and institutional investors. The company intends to use this funding to further develop its organizational capabilities and expand its market reach. This is just one of many instances where significant investments have been made in the blockchain technology industry.

Another factor driving market growth is the legalization of cryptocurrency in various countries. For instance, Ukraine and El Salvador have recently passed legislation that legalizes the use of cryptocurrency, creating new opportunities for blockchain technology adoption and market expansion.

According to YourTechDiet, the financial sector will account for the largest portion of the blockchain app market by industries in 2020, with a value of over $7.8 billion. Blockchain technology is increasingly used for financial services like money transfers and payment processing.

However, blockchain and DApps are poised to disrupt many other industries. For instance, the real estate sector can profit from creating smart contracts for real estate deals using blockchain technology, and the healthcare sector can profit from safe and effective patient records management. The supply chain sector can gain from using DAO in blockchain technology to build a more open and effective supply chain system.

In addition, the gaming industry is another promising market for blockchain apps. Blockchain-based games are already popular, and this trend is expected to continue in the coming years. DApps can create provably fair gameplay and allow for digital asset ownership, providing players with a more secure and transparent gaming experience.

blockchain stats

Looking to the future, the blockchain app market is expected to grow even faster in the coming years. The increasing adoption of blockchain technology across various industries and the growing interest in digital assets and cryptocurrency is expected to be the main drivers of this growth. According to Allied Market Research, the global blockchain technology market is expected to grow at a compound annual growth rate of 42.8% from 2020 to 2027, reaching a value of $69.04 billion by 2027.

Build Better Solutions With Idea Usher

0 +

Professionals

0 +

Projects

7 examples of blockchain applications in various industries

1. Ripple:

Ripple is a payment protocol that uses blockchain technology to make international money transfers faster and more secure. Its native cryptocurrency, XRP, allows for quick and secure funds transfers.

2. IBM’s Food Trust:

Food Trust by IBM is a blockchain-based platform that enables food producers, retailers, and distributors to track the provenance of food products in real time. This platform improves transparency and traceability in the food supply chain, giving consumers valuable information about the food they consume.

3. MedicalChain:

MedicalChain is a blockchain-based platform that aims to create a more efficient and secure system for patients and healthcare providers to share medical records. With this platform, patients can securely give permission to healthcare providers to access their medical records, and healthcare providers can efficiently access records from others.

4. Propy:

Propy is a blockchain-based platform that allows for the buying and selling of real estate using smart contracts. The platform aims to create a more transparent and secure process for real estate transactions, reducing the risk of fraud and making transactions faster and more efficient.

5. Gods Unchained:

This is a blockchain-based card game where players can collect, trade, and battle with digital cards represented as NFTs on the Ethereum blockchain. The use of blockchain technology allows for actual ownership and rarity of digital assets, making them more valuable and collectible.

6. Power Ledger:

This blockchain-based platform allows users to trade energy peer-to-peer, creating a more decentralized and efficient energy market. The platform uses smart contracts to enable energy trading and tracking of energy usage and generation, allowing for more transparency and trust between energy producers and consumers.

7. MedRec:

This is a blockchain-based app used in the healthcare industry. MedRec is a blockchain-based electronic medical record (EMR) system that aims to make medical records more secure and efficient to store and share. The platform employs a permissioned blockchain, which means that only authorized users have access to the blockchain. The system allows patients and healthcare providers to securely share medical records while giving patients more control over their data. MedRec also employs smart contracts to automate the sharing of medical records among various healthcare providers, resulting in a more streamlined and efficient system.

These are just a few examples of apps using blockchain technology in various industries. Blockchain technology has enormous potential to transform various industries, and many more use cases will likely emerge as the technology matures.

How to build a blockchain app (step-by-step guidance)?

The task of constructing a blockchain app can strike terror in the hearts of even the bravest and most audacious souls. 

Nevertheless, if one were to be bestowed with the proper counsel and guidance, it could potentially transmute into an endeavor of significant value and splendor. Hence, in this illustrious and comprehensive guide, we shall lead you through the intricate and labyrinthine maze of building a blockchain app.

Step 1: Determine the Purpose of Your App

Your blockchain software must have a goal before you can start building it. Do you want to create a decentralized platform for data sharing or transaction processing? Do you want to create a digital token or cryptocurrency? Do you have any other ideas?

You may begin organizing your app’s appearance and functionality once you’ve decided what it should do.

Step 2: Choose a Blockchain Platform

There exists a myriad of blockchain platforms that possess distinct attributes and capacities. A few examples of these platforms encompass Ethereum, Hyperledger, and Corda, which have garnered significant popularity amongst the masses.

While selecting a blockchain platform, one should reflect upon various factors such as scalability, security, and user-friendliness. Moreover, the accessibility of development tools and resources for the platform should also be considered. Without further ado, behold the advantages and use cases for some of the most widespread blockchain platforms:

Ethereum

Ethereum is a decentralized and open-source blockchain platform that empowers developers to construct decentralized applications (dApps) atop of its blockchain. Ethereum has an assortment of benefits, which are as follows:

Flexibility: The programming language that Ethereum proffers is known as Solidity, which is a flexible language that enables developers to design custom smart contracts with an extensive range of functionality.

Decentralization: Because no single entity controls this decentralized network, it is more secure and resistant to censorship.

Massive developer community: The Ethereum development community is massive and active, with a plethora of tools to help learning and growth.

Decentralized finance (DeFi) apps, gaming and gambling applications, and supply chain management applications are among the most prominent use cases for Ethereum.

Hyperledger

Hyperledger is an open-source blockchain technology built for corporate applications. Some of the benefits of Hyperledger include:

Security: With features such as role-based access control and flexible consensus methods, Hyperledger is more secure than other blockchain systems.

Privacy: With capabilities like private transactions and private data collecting, Hyperledger provides better privacy and secrecy than other blockchain systems.

Interoperability: Hyperledger is intended to be compatible with current corporate systems, making integration with existing business processes easy.

Supply chain management, trade finance, and digital identity verification are some of the most prominent Hyperledger use cases.

Corda

Corda is a blockchain platform intended for usage in the financial sector. Corda has the following advantages:

Privacy: With features such as data partitioning and secret identities, Corda is supposed to provide more privacy and secrecy than existing blockchain systems.

Interoperability: Corda is meant to be compatible with current corporate systems, making integration with existing business processes easy.

Flexibility: Corda’s flexible programming paradigm enables developers to design unique smart contracts with a wide range of capabilities.

Corda’s most frequent use cases are trade finance, insurance, and capital markets.

Corda’s most frequent use cases are trade finance, insurance, and capital markets.

It’s important to note that these are only a handful of the numerous blockchain platforms accessible, and each platform has its unique set of benefits and uses cases. 

While selecting a blockchain platform, it is critical to examine your needs and select the platform that best matches your individual use case.

Step 3: Design Your Smart Contract

The core elements of blockchain technology are smart contracts. The rules and laws regulating transactions on blockchain applications are enforced by these self-executing agreements. The accomplishment of the objectives of any blockchain application depends on the effective implementation of smart contracts.

One must choose a suitable programming language, such as Java for Hyperledger or Solidity for Ethereum, in order to create a smart contract. To guarantee that the smart contract performs as planned, testing is also important in addition to the smart contract’s creation.

Step 4: Build Your App

After creating your smart contract, you may start developing your application. In order to do this, you usually need to develop a user interface (UI) for your app that communicates with the smart contract.

To create your Interface, you may use a computer language like JavaScript. Moreover, there are a number of blockchain development frameworks, such as Truffle and Embark, that may make the process of creating your project simpler.

Step 5: Test and Deploy Your App

As one embarks upon the journey of software development, it is of utmost importance to put their code through rigorous testing. This ensures that the end product functions seamlessly without any unexpected bugs or glitches. 

However, the testing process should not be limited to the mere functionality of the software. The safety and security of the smart contract should also be thoroughly scrutinized to prevent nefarious entities from exploiting it.

Assuming that the software passes the testing phase with flying colors, the next step would be to launch it on a blockchain platform. But be warned, dear reader, for this step may come at a hefty cost. Every transaction that takes place on the app would entail a charge, as per the norms of the blockchain platform.

Step 6: Maintain and Update Your App

The creation of a blockchain application is just the start. You must maintain and update your app once it has been released. Updating might entail upgrading your smart contract to reflect modifications to your company model, introducing new functionality, or addressing errors.

Maintaining awareness of the most recent advancements in the blockchain sector is also essential to ensure that your software is still competitive and current.

Programming languages used in the creation of blockchains

Blockchain development is a challenging process that calls for specific knowledge, abilities, and language expertise.

Since they allow programmers to design smart contracts and DApps (decentralized apps) that can operate on the blockchain, programming languages are crucial to developing blockchain technology. 

We’ve spoken about some of the most widely used programming languages for creating blockchains and their benefits.

Solidity:

The high-level programming language Solidity was created expressly for building smart contracts for the Ethereum network. It is a statically typed language that is related to JavaScript and has influences from JavaScript, C++, and Python. 

Using Solidity offers several essential benefits, including being simple to learn and having a large developer community that shares expertise and provides assistance. Also, it is safe and guarantees the integrity of smart contracts.

C++:

Blockchain technology is created using the general-purpose computer language C++. It is an object-oriented language renowned for its quickness, effectiveness, and ability to manipulate low-level memory. 

The blockchain systems for Ripple, Litecoin, and Bitcoin all employ C++. It’s a strong language that works well for sophisticated applications, but learning it may be difficult.

Java:

The preferred language for blockchain-based applications is Java. Java may be shaped into a wide variety of applications, including business applications, web applications, and mobile applications. 

Java is the ideal technology for creating blockchain applications because of its unmatched dependability and impregnable security.

Python:

Python is the language for blockchain-based apps and is known for its unambiguous, legible, and user-friendly coding. Python’s might lie in its versatility, capable of creating an array of blockchain applications, including DApps and smart contracts. 

Furthermore, it’s adored among data scientists and machine learning connoisseurs, making it an optimal choice for crafting blockchain-based apps that incorporate machine learning algorithms.

JavaScript:

A computer language called JavaScript is used to create both front-end and back-end apps. It’s a flexible language used to build DApps and other blockchain-based apps, including smart contracts. 

JavaScript is an excellent option for developing blockchain-based applications that need a web interface because it’s well-liked among web developers.

C#: 

Microsoft created the object-oriented programming language C#, pronounced: “C sharp.” A wide range of applications, including blockchain apps, are built using it. C# is renowned for being straightforward, adaptable, and interoperable with other languages.

Michelson: 

A low-level programming language called Michelson is used to create smart contracts on the Tezos network. It is a stack-based language designed to be straightforward, safe, and simple to decipher.

Plutus: 

The Cardano blockchain uses the functional programming language Plutus to create smart contracts. It is created to be secure, modular, and simple to reason about and is based on the Haskell programming language.

Scilla: 

Scilla is the smart contract programming language on the Zilliqa blockchain that brings to the table unbeatable security, scalability, and lucidity. 

This high-level language offers the benefit of formal verification, guaranteeing the code’s accuracy and integrity. With Scilla, you can rest assured that your smart contract is not just free of errors but also immune to hacks and breaches.

Rholang: 

In the RChain blockchain, smart contracts are created using the concurrent programming language Rholang. It is a reflective, higher-order calculus-based language emphasizing composition and great expressiveness. Rholang is concurrency-optimized, enabling effective parallel execution of smart contracts.

Go: 

Google’s Go, also known as Golang, is a versatile programming language revered for its simplicity, speed, and concurrency. Golang is an exceptional choice for creating distributed systems and smart contracts in blockchain development, ensuring smooth operations.

The selection of the appropriate programming language can boost the performance, security, and scalability of your application. However, with an extensive range of programming languages available, finding the perfect fit can be a daunting task.

Begin by analyzing your project’s specific requirements. For instance, if you’re developing software based on smart contracts, you may consider adopting Solidity, a widely used language for executing smart contracts on the Ethereum blockchain. For handling asynchronous programming, consider implementing JavaScript or Python to enhance efficiency.

Another consideration is the availability of developers who are fluent in the language of your choice. While an uncommon language may have certain distinguishing characteristics that make it an appealing alternative, it may be difficult to locate developers with experience in that language. This might be an issue if you need to hire additional developers in the future or if current team members depart the project.

How to use a DApp for your business?

Congratulations on making the decision to create your very own blockchain application! Let’s delve into how this revolutionary technology can transform your business operations, increase revenue, and enhance security.

Furthermore, we will provide comprehensive guidance on integrating decentralized apps (DApps) into your business and maximizing their potential. We will walk you through the various use cases of blockchain technology and impart skills on leveraging them, from simplifying transactions to managing supply chains.

Businesses of all sizes can profit from the multiple uses of blockchain technology. Here are some of the most prevalent applications:

1. Transactions:

By incorporating a blockchain into your DApp, you may provide cryptocurrency transactions that are quick, safe, and simple. This is especially handy if your target audience is accustomed to making bitcoin payments.

2. Supply Chain Management:

Controlling the supply chain may be a time-consuming and difficult undertaking. A blockchain can assist you in organizing the supply chain and connecting all participants in a single safe and quick system that will validate each step.

3. Authentication:

If you require a secure tool for internal communication or operational administration, a blockchain may be a viable alternative. A blockchain provides unsurpassed security and only allows authorized people access. On your own permissioned blockchain, you may manage access levels.

4. Cloud Storage:

Why opt for cloud storage in your DApp when you can leverage the power of blockchain technology and offer your customers swift, effortless storage? This is particularly advantageous for decentralized applications requiring secure and dependable data storage.

Conclusion

Blockchain technology revolutionizes organizational practices by providing transparency, security, and decentralization. Developing a blockchain application requires a well-defined plan, comprehensive knowledge of the technology, and a skilled team of professionals.

Whether you’re aiming to streamline your supply chain, facilitate quick and secure transactions, or establish novel income streams, blockchain applications have the potential to transform your organization. 

By following the steps we’ve outlined, you’ll be well on your way to creating a successful blockchain application and reaping the benefits of this ground-breaking technology.

Looking to create a revolutionary blockchain app that can change the way businesses operate? Look no further than ideausher! Our team of experienced developers and consultants is dedicated to helping you build a cutting-edge DApp that can bring your business to the next level.

Hire Expert Developers For Your Next Project

FAQ

Q: What exactly is a blockchain application?

A: A blockchain application is a software program that leverages blockchain technology to facilitate decentralized, transparent, and secure data management and storage. Various industries, including finance, healthcare, and supply chain management, can utilize this technology to their advantage.

Q: What are the benefits of using blockchain technology in an application?

A: Using blockchain technology in a project may enhance security, transparency, and efficiency, among other things. Blockchain’s decentralized structure makes it possible to store data securely and impenetrably, while its transparency makes auditing and accountability simple.

Q: How do I go about developing a blockchain application?

A: There are several crucial phases involved in creating a blockchain application. You must first determine the issue you hope to resolve before choosing an appropriate blockchain platform. You must then choose a programming language and create the application’s architecture. The code for the application must then be developed, tested, and deployed.

Q: What are some popular blockchain platforms for developing applications?

A: Ethereum, Hyperledger, Corda, and EOS are well-known blockchain platforms on which software developers may build their programs. Every platform has its own advantages and disadvantages, so it’s crucial to do your homework and pick the one that best meets your requirements.

Q: Do I need to be a blockchain expert in developing a blockchain application?

A: While it obviously helps to have a thorough grasp of blockchain technology, it’s not always necessary to create a blockchain application. Several materials and tools may aid developers in getting started, and many blockchain platforms include approachable user interfaces and programming frameworks to streamline the process.

Share this article
Contact Us
HR contact details
Follow us on

Idea Usher is a pioneering IT company with a definite set of services and solutions. We aim at providing impeccable services to our clients and establishing a reliable relationship.

Our Partners
Contact Us
Follow us on

Idea Usher is a pioneering IT company with a definite set of services and solutions. We aim at providing impeccable services to our clients and establishing a reliable relationship.

Our Partners
Newsletter
© Idea Usher. 2024 All rights reserved.