/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ 56% complete


struct group_info init_groups = { .usage = ATOMIC_INIT(2) };
struct group_info *groups_alloc(int gidsetsize){
struct group_info *group_info;
int nblocks;
int i;


nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;
group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER);
if (!group_info)
return NULL;
group_info->ngroups = gidsetsize;
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);


if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks[0] = group_info->small_block;
else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
if (!b)
goto out_undo_partial_alloc;
group_info->blocks[i] = b;
}
}
return group_info;

EXPORT_SYMBOL(groups_alloc);


void groups_free(struct group_info *group_info)
{
if (group_info->blocks[0] != group_info->small_block) {
int i;
for (i = 0; i < group_info->nblocks; i++)
free_page((unsigned long)group_info->blocks[i]);
}
kfree(group_info);
}


EXPORT_SYMB|

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ 56% complete


struct group_info init_groups = { .usage = ATOMIC_INIT(2) };
struct group_info *groups_alloc(int gidsetsize){
struct group_info *group_info;
int nblocks;
int i;


nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;
group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER);
if (!group_info)
return NULL;
group_info->ngroups = gidsetsize;
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);


if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks[0] = group_info->small_block;
else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
if (!b)
goto out_undo_partial_alloc;
group_info->blocks[i] = b;
}
}
return group_info;

EXPORT_SYMBOL(groups_alloc);


void groups_free(struct group_info *group_info)
{
if (group_info->blocks[0] != group_info->small_block) {
int i;
for (i = 0; i < group_info->nblocks; i++)
free_page((unsigned long)group_info->blocks[i]);
}
kfree(group_info);
}


EXPORT_SYMB|

0%_LOADING

/ launching_quai_network

/ sequence_initiated

/

loading...

REBUILDING CURRENCY

a new currency
a new financial system
a new world
/ launching_quai_network / sequence_initiated / scroll_to_commence_build
> Quai Network is the only decentralized blockchain that scales to all global commerce.

Scaling without compromise

> Summary
Breaking the Trilemma. Introducing the Tetralemma.

Quai Network is a dynamic set of blockchains that is infinitely scalable with increasing demand. Traditional blockchains must compromise between security, decentralization, and throughput. This problem is otherwise known as the blockchain trilemma. Quai Network transcends this problem through its multi-threaded approach which enables scalability without compromise.

> The problem:
0
0 1
 / 
0
0 1 2 3

Proof of Work Evolved

> Summary
Merged mining: layer 2 speed. layer 1 security.

Merged mining allows miners to secure multiple blockchains simultaneously without using any additional energy. Quai utilizes this mechanism to secure an entirely new network of blockchains offering Layer 2 speed with Layer 1 security. Quai Network uses 10,000 times less energy per transaction than Bitcoin at full load with the ability to become greenhouse-gas negative.

> The features:
0
0 2
 / 
0
0 1 2 3

Many chains One network

> Summary
Trustless cross-chain transactions on-demand.

All Quai blockchains are braided together into a single interoperable network. Transactions between Quai blockchains are handled trustlessly by the protocol, so no bridging is ever required. All Quai Network chains are EVM-compatible, allowing for the seamless migration and deployment of multichain smart contracts and applications.

> The features:
0
0 3
 / 
0
0 1 2 3

building the blockchain of the future

What Can You Build?

  • Payment

  • Gaming

  • NFTs

  • Social

  • Payment

  • Gaming

  • NFTs

  • Social

  • DeFi

  • Metaverse

  • Identity

  • DAOs

  • DeFi

  • Metaverse

  • Identity

  • DAOs

Developer Resources

Docs

Visit the documentation to start building on Quai.

View Docs

Code

View all of Quai's open-source code and propose improvements.

View Code

Network

Use Quai's tooling suite to explore the network.

Our Partners

  • Polychain Capital

    Founded by Olaf Carlson-Wee in 2016, Polychain Capital is a leading VC in the crypto space.

  • Alumni Ventures

    Founded in 2014, Alumni Ventures is now one of the most active VCs in the world.

  • Zero1 Capital

    Zero1 Capital is a VC focused on digital assets and decentralized finance.

Security

All Quai Network blockchains are braided together, keeping the entire network censorship resistant and secure through the use of Proof-of-Work 2.0.

Decentralization

Quai allows anyone to participate in network governance by running a node or miner. With thousands of participants distributed across the globe, there is no single party with the ability to modify or turn off the network, ensuring zero network downtime.

Scalability

Quai Network automatically expands with demand to upwards of 50,000 TPS while keeping fees under $0.01.

Consensus

Transactions in Quai Network can be locally confirmed prior to global confirmation, offering high throughput with the shortest possible time to economic finality.

Shared Security

All blockchains within Quai Network share Proof-of-Work security through merged mining. Every Quai transaction is eventually confirmed by 100% of network hash power.

Merge-Mined Parachains

Parachains inherit security and interoperability by merged mining with Quai Network, and create new incentives for miners and users.

The Prime Chain

The Prime blockchain acts as the "knot" tying all Quai Network chains together. The Prime blockchain braids sub networks together, facilitating the transfer of data across chains.

Sub Networks

Quai's many high-speed sub networks independently and asynchronously process transactions. All sub networks are braided together by the Prime chain, ensuring shared security and interoperability across the network.