/ 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 a set of EVM-compatible blockchains that achieves 50k+ TPS without compromising decentralization.
Quai Network Golden Age Testnet

Overview of Incentive Structure

The incentive structure of the Golden Age Testnet is fairly straightforward: 

  • There is a pool of 10 million Mainnet Quai tokens that will be distributed to Golden Age Testnet participants.
  • These rewards will be distributed proportionally to the amount of Testnet Quai tokens each address holds at the end of the Golden Age Testnet.

For example, if an address has accumulated 1% of all circulating Testnet Quai by the end of the Golden Age Testnet, they will receive 1% of the total Mainnet rewards pool, or 100,000 Mainnet Quai.

The Golden Age Testnet will open to the public on 10/15/2024.

What Makes This Testnet Gamified?

The Golden Age Testnet is unique in that it is fully gamified, introducing competitive elements and multiple pathways to earn rewards. Participants can track their performance, climb leaderboards, and engage in activities that feel more like a game than a traditional testnet. Whether you’re a miner, developer, or trader, you can strategize your participation to maximize your earnings.

How Do I Earn Rewards?

There are multiple ways to maximize your Testnet Quai token holdings and earn rewards in this gamified experience:

  • Mining: If you have access to mining hardware, mining Quai is the most efficient way to accumulate significant amounts of Testnet tokens.
  • Developing: Got EVM development skills? Deploy a project that collects fees or royalties, and drive activity to it. This can be a highly effective way to earn Testnet tokens.
  • Trading: If you don’t have access to hardware or development skills, don’t worry! Use the Proof-of-Work faucet to get some Testnet Quai tokens and trade QRC-20 tokens or NFTs.
  • Arbitraging Quai <> Qi: Quai’s two-token system opens up an arbitrage opportunity for both miners and users. By utilizing this arbitrage, participants can grow their Testnet holdings.
  • Social Sharing & Challenges: Participate in a series of social media challenges to earn even more rewards. Engaging with Quai’s Twitter posts and participating in community challenges can unlock Testnet rewards. There will be evergreen, weekly, and daily challenges, with the biggest rewards going to the most creative and dedicated participants.

    Follow the Quai Twitter and Discord for challenge announcements and details.

Ready to Claim Your Share of 10 Million Quai Tokens?

This is your opportunity to be part of the first-ever gamified testnet and secure your share of the 10 million Quai tokens reward pool. Whether you’re a miner, developer, or trader, the Golden Age Testnet offers something for everyone.

Mark your calendars for October 15th, start planning your strategy, and get ready to maximize your rewards!

🚀 Stay in the loop: Join the Quai Discord to stay updated with the latest announcements and details as we get closer to the launch. More updates will be shared here as the launch date approaches, so make sure you’re plugged in! Refer back to this article for future details and updates on the Testnet structure.

Join the Quai Discord

USEFUL LINKS

Security

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

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.