Introducing Forge Framework and Forge SDK
Author: Riley Shu & Matt McKinney
Forge SDK is part of our new blockchain application Forge Framework (Forge) for developers to build blockchains and decentralized applications (DApps) easily. Forge was created for developers by developers and is about making blockchains easy and removing many of today’s development complexities and performance issues.
Our platform of services includes OCAP: the Open Chain Access Protocol, ABT Network: the interconnected blockchain network, ABT Node: an easy to use blockchain node, and now Forge Framework & SDK: that were all built to solve today’s problems with developing for blockchain - scale, performance, ease of use, production-ready tools and more.
In creating the new Forge SDKs, we learned from the previous generations of Blockchains including Hyperledger, Bitcoin and Ethereum, and abstracted where many of today’s blockchain bottlenecks existed and identified the issues that developers were encountering when trying to build DApps for their specific use cases. From those learnings, we created something entirely new, but also familiar - Forge Framework.
Similar to what Ruby on Rails did for web application development, we believe Forge Framework will do for blockchain development. Forge is easy to use, gives a developer everything they need to build blockchains and DApps, and is growing in popularity with a quickly expanding ecosystem of partners and tools.
By using Forge, developers immediately benefit from:
- Integrated support for Foreign Chains like Bitcoin and Ethereum
- gRPC and GraphQL support
- On-chain governance
- Automatic updates
- Infinitely scalable network
- Any DApp or service built with the Forge SDK is natively compatible with ABT Network
- Built-in decentralized identity
Forge gives developers an easily upgradeable, efficient and entirely new way to build blockchains easily. Forge does all the hard work for you letting you concentrate on what you do best - your code.
To learn how Forge SDK works from a high level, go to the “Getting Started” introduction - https://docs.arcblock.io/forge/latest/intro/.
Now, there are just two steps to start:
- Start a node on your device by using Forge CLI. This step helps you start a complete node, on top of which you can build your application logic.
That’s it! Now you have a running Node and a set of tools ready to use. Now, its time to take your first step by creating a wallet and sending a transaction.
While Forge is easy to use, and we expect that most developers will immediately feel right at home, we think it is important to call out a few key concepts to help you get started.
To initiate a transaction on your node that you just started you first need to create an account. Each account has a unique address to identify different users and each user can actually have an unlimited number of accounts with different addresses. A wallet is a container of users accounts' credentials, including the unique address, a Secret Key (SK) and a Public Key(PK).
Get started with Accounts and Wallets on Forge - https://docs.arcblock.io/forge/latest/intro/#quick-start.
A transaction is the smallest unit of activity that can happen on chains built by the Forge SDK. Everything running on the ABT Network (https://www.abtnetwork.io) can be interpreted as combinations of different transactions.
The origin of using “transaction” to describe on-chain activities dates back to Bitcoin. In Satoshi’s original paper BitCoin: A Peer to Peer Electronic Cash System, a transaction refers to transferring coins by signing a hash, so that other parties can verify that this transaction is real and valid.
With Forge SDK, a transaction contains far more information than coins. Depending on the type of transactions, each transaction has a different function.
Having everything composed of transactions requires every transaction to be signed and sent by an existing account. If people want to do something on Forge, they have to go through the process of sending transactions. That’s the secret of how Forge Framework keeps traces of all kinds of activities ever happened.
To learn more about Forge transactions visit - https://docs.arcblock.io/forge/latest/txs/#categories.
Forge is designed to make developers lives easier and solve real-world problems. While Forge has many integrated features and benefits, two key technologies in Forge that we want new users to pay attention to are gRPC and GraphQL.
You can also learn more about gRPC and GraphQL here: https://docs.arcblock.io/forge/latest/core/rpc.html#why-grpc.
gRPC (Google Remote Procedure Calls) is an open source remote procedure call system initially developed at Google. It provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts. Or, simply put is the system that allows you to connect services in and across locations.
One important feature is that gRPC allows a client application to directly call methods on a server application on a different machine - a critical feature for decentralized application development. In addition, gRPC brings additional features that benefit developers including that the system is more efficient and accurate when compared with traditional JSON RPC calls, which most blockchain platforms are using now.
Of course, this leads to the question - If gRPC is so great why don’t other platforms use it? The short answer is that because building gRPC typically requires some additional work to encode and decode data. The good news is, Forge SDK actually does all of that work for you. We believe that gRPC is the best option for developers and and by using Forge you can simply focus on passing the parameters to each gRPC call and enjoy all the benefits of gRPC without worrying the hassles underneath — Forge SDK has you covered.
While gRPC is good for building backend services, GraphQL is the perfect compliment for front-end/mobile access. If you want to serve mobile or web users with Forge API, GraphQL is an excellent solution for your requirements. Everything is Forge is pluggable and allows you to use whatever tool works for your workflow.
While commonly associated with Facebook, GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. It provides an efficient, powerful and flexible approach to developing web APIs by allowing clients to define the structure of the data required, and exactly the same structure of the data is returned from the server.
Therefore no excessively large amounts of data from being returned. From a client's point of view, the GraphQL API is more powerful and secure.
To start your next blockchain project on Forge, simply install Forge. We can't wait to see what you build.