-
Notifications
You must be signed in to change notification settings - Fork 1
/
polkadot.json
706 lines (706 loc) · 40.4 KB
/
polkadot.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
[
{
"title": "Intro to Polkadot",
"index": 1,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/vF7XfK8.png",
"title": "Meet the next-generation blockchain",
"details": "Welcome to the world of Polkadot, a platform for Web3 applications and services - created by Gavin Wood, one of the co-founders of Ethereum. It is a vision towards a free, open, and decentralized world computer."
},
{
"id": 2,
"imageUrl": "https://i.imgur.com/9BQhqPY.png",
"title": "Building blocks of Polkadot",
"details": "Polkadot is designed to solve 3 fundamental problems in the blockchain space: scalability, security, and interoperability. The Polkadot ecosystem is composed of many independent web3 applications, like blockchains, smart contracts, and DApps. With Polkadot, you too can design and deploy applications to fit your exact needs - all on a secure, scalable network!"
},
{
"id": 3,
"imageUrl": "https://i.imgur.com/kdwrLg5.png",
"title": "Scalability solved",
"details": "Polkadot scales Web3 applications through parallelization, sharding, and shared security. Transactions across different applications are executed in parallel, and each application’s data is hosted on its own blockchain. This enables applications to grow quickly without impacting the fees or speeds of others, all under Polkadot’s robust security."
},
{
"id": 4,
"imageUrl": "https://i.imgur.com/XbI361a.png",
"title": "Unleash versatility",
"details": "Plus, Polkadot’s unique design allows applications to do things that aren’t possible on other blockchains. For example, they can enable zero transaction fees, scale up and down on-demand, and permissionlessly upgrade and evolve over time."
},
{
"id": 5,
"choices": [
"A payment platform for cryptocurrencies",
"A platform for scaling Web3 applications",
"A traditional smart contract platform"
],
"correctChoice": "A platform for scaling Web3 applications",
"title": "What is Polkadot?"
},
{
"id": 6,
"imageUrl": "https://i.imgur.com/NeDZPZr.png",
"title": "Breaking barriers",
"details": "Polkadot is highly adaptable, so developers can choose how they want to build their own blockchain. You can use prebuilt templates, design custom applications, or even re-architect the low-level system! The possibilities are endless!"
},
{
"id": 7,
"imageUrl": "https://i.imgur.com/kQKhtLG.png",
"title": "The future of blockchain",
"details": "Consider traditional blockchains to be small islands separated from one another. Each island operates independently, making scaling and communication difficult. Polkadot provides connectivity, security, and resources for all of these 'islands,' empowering them to achieve their highest potential."
},
{
"id": 8,
"choices": [
"Polkadot provides security to the applications connected to it",
"Polkadot provides communication channels and interoperability between applications",
"Polkadot provides a scalable and flexible platform for developing applications",
"All of the above"
],
"correctChoice": "All of the above",
"title": "How does Polkadot help other blockchains and Web3 applications?"
},
{
"id": 9,
"choices": [
"Polkadot uses expensive hardware to vertically scale their blockchain",
"Polkadot parallelizes incoming transactions and shards data across its applications",
"Polkadot optimistically secures applications and checks for transaction validity only when there is a dispute"
],
"correctChoice": "Polkadot parallelizes incoming transactions and shards data across its applications",
"title": "How does Polkadot scale Web3 applications?"
},
{
"id": 10,
"choices": [
"It is less secure than traditional blockchains",
"It cannot connect with non-blockchain systems",
"It allows for collaboration among different blockchains",
"It has a limited number of customizable features"
],
"correctChoice": "It allows for collaboration among different blockchains",
"title": "How does Polkadot differ from traditional blockchains?"
},
{
"id": 11,
"imageUrl": "https://i.imgur.com/mli9QVH.png",
"title": "Scaling itself",
"details": "Polkadot is more than just a scaling solution for other applications and blockchains, it scales itself! Features on Polkadot are also parallelized and sharded, allowing cheap and efficient access for all of its users. That is why when using Polkadot, you can expect fast speeds, low fees, and high security."
},
{
"id": 12,
"imageUrl": "https://i.imgur.com/SHmsZPe.png",
"title": "Play on Polkadot",
"details": "Polkadot offers a suite of features available to all $DOT holders. You can create and distribute new assets and NFTs, participate in decentralized governance, secure the network and earn rewards via staking, securely bridge to other blockchains, and soon even deploy smart contracts directly to the network."
},
{
"id": 13,
"imageUrl": "https://i.imgur.com/ZtKYg13.png",
"title": "Parachains",
"details": "For everything else, Polkadot has the parachain ecosystem! Parachains ('parallel-chains') are blockchains built by engineering teams in the Polkadot community. They extend the functionality of Polkadot or provide their own custom services. You can find DeFi platforms, prediction markets, NFT marketplaces, and more among the parachain ecosystem."
},
{
"id": 14,
"imageUrl": "https://i.imgur.com/YQNFrNk.png",
"title": "Kusama - Polkadot's canary network",
"details": "Polkadot is arguably the most resilient blockchain network today, and much of that can be attributed to Kusama. Think of Kusama as a production-level, high-speed, experimental version of Polkadot, where things move faster and innovation happens quickly. Developers deploy new ideas and features to Kusama first, ensuring everything is tested before being brought to Polkadot. Kusama, at times, can even have a mind of its own!"
},
{
"id": 15,
"choices": [
"Kusama is a parachain on Polkadot",
"Kusama is a canary network for Polkadot",
"Kusama is a competitor to Polkadot"
],
"correctChoice": "Kusama is a canary network for Polkadot",
"title": "What is Kusama?"
},
{
"id": 16,
"imageUrl": "https://i.imgur.com/pnFudYZ.png",
"title": "Polkadot pioneer!",
"details": "Look at you! You’ve taken your first steps with Polkadot and are now able to understand why it’s used, who uses it, and how to use it. It’s really much simpler than you think! We’ve established that Polkadot is super versatile, and so are its tools! Let’s now have a look at how to work with Polkadot!"
},
{
"id": 17,
"tweetReason": "Share the love on Twitter - we'll be rewarding the best ones with swag and prizes! ❤️",
"tweetContent": "I'm building on @Polkadot with @easya_app on my #360DaysOfPolkadot!\n\nCurrently learning about... \n\n🧑💻 How parachains work!\n⛓ How to build blockchains with @Polkadot \n🖼 How to speed up development 10x",
"tweetContentUrl": ""
}
]
},
{
"title": "How to work with Polkadot",
"index": 2,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/Ys0BGmG.jpg",
"title": "Gear up with Polkadot",
"details": "To start building your own parachain on the Polkadot network, you need a Polkadot account. This account lets you manage your DOT tokens, participate in staking and governance, and access the tools you need to build your parachain."
},
{
"id": 2,
"imageUrl": "https://i.imgur.com/zzQnxmD.png",
"title": "Safeguard your assets",
"details": "As you gather resources on the island, wallets become essential tools for managing and protecting your DOT tokens and other assets within the Polkadot ecosystem. Choose from various types of wallets, such as hardware, software and browser-based wallets, each with its own benefits and security features. Safeguard your digital treasures in popular wallets like Enkrypt, PolkaGate, SubWallet and Talisman."
},
{
"id": 3,
"imageUrl": "https://i.imgur.com/LTd50aN.png",
"title": "Not forgetting about mobile",
"details": "When you’re developing for the mainstream, it's important to make sure your program can work with popular mobile wallets. That means integrating a wallet SDK or API so users can easily connect and interact with their Polkadot accounts. Good news: wallets like Polkawallet and Fearless Wallet have resources to help you do just that!"
},
{
"id": 4,
"imageUrl": "https://avatars.githubusercontent.com/u/33775474?s=280&v=4",
"title": "Polkadot.js: your navigator",
"details": "Polkadot.js is the trusty compass that guides you through the Polkadot network. It serves as a bridge between you and the various features of Polkadot, making it a super useful tool for building your own parachain and connecting the different blockchain islands!"
},
{
"id": 5,
"title": "First steps",
"details": "As we work towards building our parachain in the hope of connecting the different blockchain islands, let's check our current balance using the code below:",
"language": "javascript",
"code": "const { ApiPromise, WsProvider } = require('@polkadot/api');\n\nasync function main() {\nconst wsProvider = new WsProvider('wss://rpc.polkadot.io');\nconst api = await ApiPromise.create({ provider: wsProvider });\nconst address = 'FAKEADDRESS';\nconst balance = await api.query.system.account(address);\nconsole.log(`Balance of ${address}: ${balance}`);\n}"
},
{
"id": 6,
"imageUrl": "https://polkadot.network/meta/og-image-staking.png",
"title": "The art of staking",
"details": "Staking involves locking up your DOT tokens to help secure the network and earn rewards. Validators and nominators contribute to the stability of the ecosystem by staking DOT and supporting validator candidates. Nominators earn rewards proportional to their staked amounts while backing validators."
},
{
"id": 7,
"choices": [
"Storing and managing your DOT tokens",
"Participating in staking and nominating",
"Finding yield farming strategies"
],
"correctChoice": "Finding yield farming strategies",
"title": "Which of these is NOT a function of Polkadot.js?"
},
{
"id": 8,
"choices": [
"The users of Polkadot",
"The validators",
"The engineers building new parachains",
"All the above"
],
"correctChoice": "All the above",
"title": "Who contributes to the stability of the ecosystem?"
},
{
"id": 9,
"imageUrl": "https://i.imgur.com/YA3ysPy.png",
"title": "Power to the people",
"details": "Polkadot has a unique governance system that empowers its community to participate in decision-making. By holding DOT tokens, you too can vote on proposals and help shape the future of the Polkadot network. This is a super cool way of getting everybody involved!"
},
{
"id": 10,
"imageUrl": "https://i.imgur.com/GT9uGcw.png",
"title": "Democracy in action",
"details": "Polkadot's referendum system lets DOT holders have a say in important network changes. You can participate in referenda to influence updates and modifications to the ecosystem, including the staking process. It's decentralized decision-making at its best!"
},
{
"id": 11,
"title": "Finally... getting started with Polkadot.js. Take a look at the code below to see if you can figure out how it works!",
"language": "javascript",
"code": "const { ApiPromise, WsProvider } = require('@polkadot/api');\n\nasync function main() {\n// Connect to a local Polkadot node\nconst wsProvider = new WsProvider('wss://rpc.polkadot.io');\nconst api = await ApiPromise.create({ provider: wsProvider });\n\n// Retrieve the latest block number\nconst blockNumber = await api.rpc.chain.getHeader();\nconsole.log(`Latest block number: ${blockNumber.number}`);\n}"
},
{
"id": 12,
"choices": [
"To secure the network and earn rewards",
"To mine new DOT tokens",
"To create new parachains"
],
"correctChoice": "To secure the network and earn rewards",
"title": "To recap, what is the primary purpose of staking in Polkadot?"
},
{
"id": 13,
"imageUrl": "https://i.imgur.com/fQeoF5V.png",
"title": "Expanding horizons",
"details": "As you delve deeper into the Polkadot ecosystem, you'll encounter parachains and parathreads. These are two types of customizable blockchains that interconnect within the network, differing mainly in the way they connect to Polkadot - parachains secure their connection by leasing a slot via auction, while parathreads use a pay-as-you-go model. Both bring their own unique capabilities, adding some amazing features to our blockchain islands. For example, some parachains focus on adapting Ethereum, and others on helping creators make dynamic NFTs!"
},
{
"id": 14,
"imageUrl": "https://i.imgur.com/dyCgbew.png",
"title": "Funding the future",
"details": "Crowdloans are a unique way for the community to support the launch of new parachains. By contributing DOT tokens to a crowdloan, you can help fund a project's development and potentially earn rewards in the form of the project's native tokens. Just like a Gofundme!"
},
{
"id": 15,
"choices": [
"True",
"False"
],
"correctChoice": "True",
"title": "Polkadot helps different blockchains communicate with each other."
},
{
"id": 16,
"choices": [
"True",
"False"
],
"correctChoice": "False",
"title": "Polkadot always needs hard forks to make updates to its network."
},
{
"id": 17,
"imageUrl": "https://i.imgur.com/xZy1RBY.png",
"title": "Onwards and upwards!",
"details": "Keep exploring the exciting world of Polkadot! You're doing great already! Keep the momentum going and you'll be a Polkadot hero in no time at all!"
}
]
},
{
"title": "How to build a Parachain",
"index": 3,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/lXWnGI1.png",
"title": "Embarking on the parachain journey",
"details": "Building a parachain is your key to connecting the diverse blockchain islands. A parachain allows you to create a unique, customizable blockchain that connects seamlessly to the network. Let’s have a look at the parachain architecture, the development toolbox and pallets (what on earth are those?)!"
},
{
"id": 2,
"imageUrl": "https://i.imgur.com/qBrWoH9.png",
"title": "Parachain architecture",
"details": "Parachain hosts, collators, and parachain runtime are the three key components of a parachain. They’re super crucial for your chain, so let’s take a deep dive into how they all work together!"
},
{
"id": 3,
"imageUrl": "https://i.imgur.com/JHCEIjk.png",
"title": "Collators: a parachain's backbone",
"details": "Collators are essential in maintaining your parachain as they gather transactions and help generate blocks. They’re putting in the hard work to make sure everything works the way it’s supposed to, contributing to your parachain's overall stability and performance."
},
{
"id": 4,
"choices": [
"To secure the network and earn money",
"To collect transactions and produce blocks",
"To create new pallets"
],
"correctChoice": "To collect transactions and produce blocks",
"title": "What is the primary role of collators in a parachain?"
},
{
"id": 5,
"imageUrl": "https://i.imgur.com/SnNQj4x.png",
"title": "Preparing for a parachain auction",
"details": "Parachain auctions on Polkadot involve a bidding process where projects compete by locking DOT tokens for a specified time period. The highest bidder wins the slot and gains the right to launch their parachain. We’ll have a look at what it takes to win a bid!"
},
{
"id": 6,
"imageUrl": "https://i.imgur.com/5ee3A04.png",
"title": "Crowdfunding your parachain",
"details": "Crowdloans are a nifty financing method for your parachain project. By pooling DOT tokens from supporters, you can bid in parachain auctions, launching your project while rewarding your backers."
},
{
"id": 7,
"imageUrl": "https://i.imgur.com/mZJuRRy.png",
"title": "Bringing your parachain to life",
"details": "Securing a parachain slot initiates the deployment process, which establishes the vital bridge connecting the different blockchain islands. Key steps involve registering the parachain, setting up the initial collator set, and fine-tuning the chain configuration to ensure a sturdy and efficient connection between the blockchain islands in the Polkadot ecosystem."
},
{
"id": 8,
"choices": [
"Parachain runtime",
"Parachain hosts",
"Collators",
"Crowdloans"
],
"correctChoice": "Collators",
"title": "Which component of a parachain is responsible for gathering transactions and helping generate blocks?"
},
{
"id": 9,
"title": "Pallets in action!",
"details": "This is a pallet dependency description - it's used to make the pallet available to the node runtime. The Nicks pallet allows blockchain users to pay a deposit to reserve a nickname for an account they control.",
"language": "yaml",
"code": "[dependencies]\npallet-nicks = { \nversion = \"4.0.0-dev\", \ndefault-features = false, \ngit = \"https://github.com/paritytech/substrate.git\", \nbranch = \"polkadot-v0.9.37\" \n}"
},
{
"id": 10,
"title": "Add the Nicks pallet to the features list before compiling the runtime to enable it to be used!\n\nLook at the format of the other pallets already in the features list and add the Nicks pallet above to the list so the runtime can compile!",
"code": "[features]\ndefault = [\"std\"]\nstd = [\n\"pallet-aura/std\",\n\"pallet-balances/std\",\n\"pallet-nicks\"\n]\n",
"orderedAnswer": [
"\"",
"pallet-nicks",
"\"",
"]"
],
"startingCode": "[features]\ndefault = [\"std\"]\nstd = [\n\"pallet-aura/std\",\n\"pallet-balances/std\",\n",
"language": "yaml"
},
{
"id": 11,
"imageUrl": "https://i.imgur.com/R7I22oU.png",
"title": "On-chain governance",
"details": "You can think of on-chain governance sort of like the island council (to continue our analogy). It's essential for sustaining a parachain and maintaining harmony across our island network. Transparent, community-driven governance structures empower users to influence the future of the parachain and the connections between blockchain islands, fostering accountability and consensus-driven decision-making."
},
{
"id": 12,
"imageUrl": "https://i.imgur.com/3NnqnV3.png",
"title": "Embracing upgrades",
"details": "To keep a parachain on the cutting edge, it's vital to adapt to the ever-changing trends of blockchain innovation. By planning, proposing, and executing on-chain upgrades our parachain can continue to be a robust and reliable connection to other islands, fostering a connected ecosystem."
},
{
"id": 13,
"choices": [
"True",
"False"
],
"correctChoice": "True",
"title": "True or False: To launch a parachain, you can either choose the on-demand model (parathreads), or auction model where you get a reserved parachain slot (parachain)"
},
{
"id": 14,
"imageUrl": "https://i.imgur.com/glMLxrT.png",
"title": "Look at you, Parachain legend!",
"details": "You've nailed parachain building and connected the blockchain islands with a super cool parachain! Put your newfound know-how to use and explore some of Polkadot's awesome tooling next!"
}
]
},
{
"title": "Best frameworks for Polkadot Development",
"index": 4,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/IpiJHvv.png",
"title": "Deeper dive",
"details": "Now you know how to make your first parachain, we can dive deeper into the frameworks used to customize and specialize your parachain!"
},
{
"id": 2,
"imageUrl": "https://i.imgur.com/xba5CEh.png",
"title": "Substrate",
"details": "A face you’ll see often throughout your Polkadot journey is Substrate, a powerful Rust-based framework that lets you cherry-pick characteristics for your parachain, so you can easily upgrade and evolve your blockchain over time. \n\nBest of all, Substrate comes with loads of built-in features to take care of the protocol-level tasks, so you can focus on what really matters - programming your groundbreaking new features!\n"
},
{
"id": 3,
"imageUrl": "https://i.imgur.com/yXnAjjB.png",
"title": "Pallets",
"details": "Pallets in Substrate are like Legos, they’re designed for specific uses, but when put together they combine their characteristics.\n\nAs building blocks for our blockchain bridges, they are designed to work together smoothly, with each pallet providing a specific function or feature that can be merged into the bigger project. You can save time and effort while keeping compatibility and stability in your parachain by using the pre-built functionality of pallets."
},
{
"id": 4,
"imageUrl": "https://i.imgur.com/VPSQMIr.png",
"title": "Compiling a substrate node",
"details": "Compiling your Substrate node is the first step to building your local blockchain and simulating a network. Luckily, the clever folks behind Substrate have made a super straightforward tutorial. If you have time, take a deeper dive by checking out the tutorials linked below. Otherwise, stick with us and let's continue exploring!",
"resources": [
{
"label": "docs.substrate.io/tutorials",
"url": "https://docs.substrate.io/tutorials"
}
]
},
{
"id": 5,
"title": "Three core technologies",
"imageUrl": "https://i.imgur.com/ttAIdaq.png",
"details": "Substrate's three core technologies are libp2p, Wasm and GRANDPA. Libp2p is a peer-to-peer networking protocol that allows nodes in a Substrate network to communicate."
},
{
"id": 6,
"title": "What's Wasm?",
"imageUrl": "https://i.imgur.com/ttAIdaq.png",
"details": "Wasm empowers you to write blockchain logic in multiple languages, delivering true flexibility. The beauty of Substrate is it enables forkless upgrades, and coupled with Substrate this means you can write runtimes in any language (so long as it compiles to wasm)!",
"language": "javascript",
"code": "const Libp2p = require('libp2p');\nconst TCP = require('libp2p-tcp');\nconst { NOISE } = require('libp2p-noise');\n(async () => {\nconst libp2p = await Libp2p.create({ modules: { transport: [TCP], connEncryption: [NOISE] }, });\nawait libp2p.start();\n})();"
},
{
"id": 7,
"imageUrl": "https://i.imgur.com/7xhmIHY.png",
"title": "Immutable finality",
"details": "GRANDPA is a finality gadget that guarantees that once a block is added to the chain, it cannot be reversed or altered. It ensures that finality is reached easily and quickly, even when the blockchain is forked and restructured."
},
{
"id": 8,
"choices": [
"Quick and efficient code execution",
"Peer-to-peer networking between nodes",
"Modular networking stack with a variety of communication protocols and transports"
],
"correctChoice": "Quick and efficient code execution",
"title": "What does Wasm enable in Substrate?"
},
{
"id": 9,
"choices": [
"To allow developers to focus on more important things than protocol level stuff",
"To provide sandboxed code execution for increased security",
"To enable quick and efficient code execution"
],
"correctChoice": "To allow developers to focus on more important things than protocol level stuff",
"title": "What is the purpose of Substrate's built-in features?"
},
{
"id": 10,
"choices": [
"To provide sandboxed code execution for increased security",
"To ensure that once a block is added to the chain, it cannot be reversed or altered",
"To allow nodes in a Substrate network to communicate and offer a modular and adaptable networking stack",
"To implement a consensus mechanism"
],
"correctChoice": "To allow nodes in a Substrate network to communicate and offer a modular and adaptable networking stack",
"title": "What is the purpose of Libp2p in Substrate?"
},
{
"id": 11,
"imageUrl": "https://i.imgur.com/FPOWsH9.png",
"title": "Moving onto ink!",
"details": "A language you’ll often hear about during your Polkadot journey is ink!, a rust-based smart contracts language, designed to be used to write smart contracts."
},
{
"id": 12,
"imageUrl": "https://i.imgur.com/WqdIGzs.png",
"title": "Why is ink! special?",
"details": "ink! is particularly loved for its safety, speed, and concurrency. This fits hand in hand with Substrate's core values, and will complement your runtime perfectly!"
},
{
"id": 13,
"imageUrl": "https://i.imgur.com/uR0q9rf.png",
"title": "Security",
"details": "Remember how we talked about Rust earlier? Because of Rust's focus on security, your smart contracts can be more resistant to errors, vulnerabilities, and hacks. This means that your contract and the overall network are kept super safe."
},
{
"id": 14,
"choices": [
"Python",
"Rust",
"Java",
"JavaScript"
],
"correctChoice": "Rust",
"title": "Which programming language is ink! built on top of?"
},
{
"id": 15,
"choices": [
"It is a low-level language that provides full control over the blockchain",
"It's fast, secure and helps developers write smart contracts with fewer errors and vulnerabilities",
"It has a better binary than other smart contract languages",
"It provides a graphical user interface for easy development"
],
"correctChoice": "It's fast, secure and helps developers write smart contracts with fewer errors and vulnerabilities",
"title": "What is one big advantage of using ink! for smart contract development?"
},
{
"id": 16,
"choices": [
"Interoperability with other smart contract languages and frameworks",
"Safety and security features",
"Built-in support for web development",
"Flexibility and customization"
],
"correctChoice": "Built-in support for web development",
"title": "Which of the following is NOT a benefit of ink! for developers?"
},
{
"id": 17,
"imageUrl": "https://i.imgur.com/zI5GJss.png",
"title": "You've done it!",
"details": "You’re almost there! You’ve come super far and learnt so much! Now you know all about Substrate and why you’d want to start building smart contracts on ink!, you’re on the path to greatness and we can’t wait to see what you come up with!"
}
]
},
{
"title": "The Future of Polkadot",
"index": 5,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/dQnUqKa.png",
"title": "Exciting adventures await",
"details": "You've become quite the Polkadot whiz! Now it's time to put your knowledge into action by creating your own parachain. Let’s get our hands dirty while we guide you through building a functioning parachain step by step and explore Polkadot governance and exciting future developments."
},
{
"id": 2,
"title": "We'll start by setting up the development environment and initializing your parachain project using Substrate and Rust. Here's a code snippet to get you started. Name your parachain: AlphaChain. Hint: you've got to do it in two places!",
"startingCode": "cargo install node-cli \ncargo new --bin my_parachain\ncd my_parachain",
"correctCode": "cargo install node-cli \ncargo new --bin AlphaChain\ncd AlphaChain",
"hint": "instead of 'my_parachain' change the text to 'AlphaChain'",
"enhancedHint": [
{
"type": "plainString",
"value": "instead of 'my_parachain' change the text to"
},
{
"type": "copyToClipboard",
"value": "AlphaChain"
}
],
"language": "typescript",
"freeFormCodeValidationMethod": "trimAll"
},
{
"id": 3,
"title": "Next, let's lay the foundations for our island bridge by creating the basic structure of our parachain, including the runtime configuration. Change our parachain spec_name to: AlphaChain",
"language": "typescript",
"freeFormCodeValidationMethod": "trimAll",
"startingCode": "pub const VERSION: RuntimeVersion = RuntimeVersion { \nspec_name: create_runtime_str!(\"my-parachain\"), impl_name: create_runtime_str!(\"my-parachain-node\"),\nauthoring_version: 1, \nspec_version: 1, \nimpl_version: 1, \napis: RUNTIME_API_VERSIONS,\ntransaction_version: 1, \n};\n",
"correctCode": "pub const VERSION: RuntimeVersion = RuntimeVersion { \nspec_name: create_runtime_str!(\"AlphaChain\"), impl_name: create_runtime_str!(\"my-parachain-node\"),\nauthoring_version: 1, \nspec_version: 1, \nimpl_version: 1, \napis: RUNTIME_API_VERSIONS,\ntransaction_version: 1, \n};\n",
"hint": "instead of 'my_parachain' change the text to 'AlphaChain'",
"enhancedHint": [
{
"type": "plainString",
"value": "instead of 'my_parachain' change the text to"
},
{
"type": "copyToClipboard",
"value": "AlphaChain"
}
]
},
{
"id": 4,
"imageUrl": "https://i.imgur.com/bi4P7tC.jpg",
"title": "Now, we'll add a crucial component to hold our island bridge together! How do we do that? By adding a simple pallet for handling balances in our parachain. Change the existential deposit count here to: 1000. Hint: it's on the second line!",
"language": "typescript",
"freeFormCodeValidationMethod": "trimAll",
"startingCode": "parameter_types! {\npub const ExistentialDeposit: u128 = 500;\n}\n\nimpl pallet_balances::Config for Runtime {\ntype MaxLocks = MaxLocks;\ntype Balance = u128;\ntype Event = Event;\ntype DustRemoval = ();\ntype ExistentialDeposit = ExistentialDeposit;\ntype AccountStore = System;\ntype WeightInfo = ();\n}\n",
"correctCode": "parameter_types! {\npub const ExistentialDeposit: u128 = 1000;\n}\n\nimpl pallet_balances::Config for Runtime {\ntype MaxLocks = MaxLocks;\ntype Balance = u128;\ntype Event = Event;\ntype DustRemoval = ();\ntype ExistentialDeposit = ExistentialDeposit;\ntype AccountStore = System;\ntype WeightInfo = ();\n}\n",
"hint": "change value of ExistentialDeposit from 500 to 1000",
"enhancedHint": [
{
"type": "plainString",
"value": "Change value of ExistentialDeposit from 500 to"
},
{
"type": "copyToClipboard",
"value": "1000"
}
]
},
{
"id": 5,
"imageUrl": "https://i.imgur.com/bi4P7tC.jpg",
"title": "What is Polkadot's primary decision-making mechanism?",
"choices": [
"Council voting",
"Referenda",
"Treasury proposals"
],
"correctChoice": "Referenda"
},
{
"id": 6,
"imageUrl": "https://i.imgur.com/RsniY19.png",
"title": "Scalability solutions",
"details": "We’ll be honest, many blockchains really don’t scale well and can be quite slow, and this is a big issue for the Web3 ecosystem. But fear not, because Polkadot offers several solutions. One of these is Cross-Chain Message Passing (XCMP) which is responsible for data transfer between different blockchains. Other solutions include sharding, the parachains architecture and much more. With its unique architecture and approach to parachain development, Polkadot is a key player in increasing blockchain scalability."
},
{
"id": 7,
"imageUrl": "https://i.imgur.com/bi4P7tC.jpg",
"title": "How does Polkadot address scalability issues?",
"choices": [
"By using a single, powerful blockchain with better hardware",
"Through sharding alone ",
"By using a new approach to blockchain scalability which leverages new innovations such as sharding, XCMP, parachains and more"
],
"correctChoice": "By using a new approach to blockchain scalability which leverages new innovations such as sharding, XCMP, parachains and more"
},
{
"id": 8,
"imageUrl": "https://i.imgur.com/NoIsnh1.png",
"title": "Funding the future",
"details": "Polkadot's treasury is responsible for funding network development and growth, sort of like a governing body funding different projects that will contribute to society. The treasury operates by allocating funds to approved proposals, helping support innovation in the Polkadot ecosystem."
},
{
"id": 9,
"imageUrl": "https://i.imgur.com/dLZfT1R.png",
"title": "Navigating upgrades",
"details": "If you dig into its history, Polkadot's ecosystem is continuously evolving. Staying ahead involves anticipating and adapting to network upgrades and improvements. This means that you’ll need to be on the lookout for what’s new in the space, and how to adapt to new developments."
},
{
"id": 10,
"imageUrl": "https://i.imgur.com/76nfd9o.png",
"title": "Connecting blockchains and the community",
"details": "We’ve built a parachain, now what? There are plenty of ways of connecting with other developers like you and getting live support on your own journey. If you’re facing any issues, chances are some other builder has as well and can help you with your problem. Check out the Polkadot StackExchange, for example!"
},
{
"id": 11,
"imageUrl": "https://i.imgur.com/oyLsEvZ.png",
"title": "Launch your project!",
"details": "But hey, there’s more! On top of just reaching out to people online, make sure you check out some regional hackathons or meet-ups between Polkadot or Web3 enthusiasts. If you’re living close to a major city, chances are there’s something going on near you! Many different parachains offer various grants that can be an amazing stepping stone for funding your Web3 project."
},
{
"id": 12,
"imageUrl": "https://i.imgur.com/20mi7kJ.png",
"title": "Polkadot Visionary!",
"details": "You've successfully built a parachain, forging a bridge between islands with the help of pallets. You've equipped yourself with invaluable knowledge to launch your Polkadot network with confidence. There are so many different ways of maximizing Polkadot’s utility, and a bunch of parachains have already done so! Keep exploring different parachains and make a lasting impact on the ecosystem! We can’t wait to see what you build!"
}
]
},
{
"title": "Bonus: Join the community",
"index": 6,
"challengeSteps": [
{
"id": 1,
"imageUrl": "https://i.imgur.com/7uoHpmF.png",
"title": "Boss mode",
"details": "So, you've made it this far. What next? In this bonus challenge we've designed something extra special for you to show you're a true Polkadot mastermind. Will this be challenging? Yes. Will it stretch you? Absolutely. But will it be worth it? Totally. If you complete this challenge you'll be able to wear it as a badge of honour. If you aren't able to then you're still a brilliant Polkadot developer for getting this far! So here we go!"
},
{
"id": 2,
"title": "Learn how to contribute to Polkadot",
"details": "As your final step in the journey, let's learn how to make the changes we want to see in Polkadot! That's the beauty of Polkadot being fully open source; if you see something you want to improve, you can do it right away, all by yourself! Read all about how to do so on this webpage.",
"url": "https://wiki.polkadot.network/docs/contributing"
},
{
"id": 3,
"choices": [
"False",
"True"
],
"correctChoice": "False",
"title": "You can update the Polkadot Wiki by committing your changes directly to the master branch"
},
{
"id": 4,
"imageUrl": "https://i.imgur.com/U6JRF9W.png",
"title": "Becoming a great community member",
"details": "In any community, whether it's a city or just your local neighbourhood, the best community members give back and help newcomers join! The Polkadot community is no different. The best community members help newbies learn the ropes and make Polkadot accessible to everyone!\n\nAs we all know, learning how to develop on a new blockchain is one of the hardest things for developers. So great community members help write tutorials, guides, and even just help keep documentation up to date! This means that newbies can easily learn about Polkadot and the community will just get stronger and stronger. See if you can find something you'd like to update in the link below!",
"resources": [
{
"label": "Polkadot Wiki",
"url": "https://wiki.polkadot.network/docs/learn-index"
}
]
},
{
"id": 5,
"title": "Forking time!",
"imageUrl": "https://imgur.com/KDAJUgn",
"details": "Fork the repo of Polkadot Wiki.",
"repoLink": "w3f/polkadot-wiki"
},
{
"id": 6,
"imageUrl": "https://i.imgur.com/ohEcMFv.png",
"title": "You're a great community member!",
"details": "Nice work! By forking that Repo, you've just become a great member of the Polkadot community. It's small things like this that make a huge difference to helping make Polkadot more accessible to newcomers. Keep it up! Even better - make updates to that fork and create a Pull Request into the main Wiki repo! Remember - no matter how small your contribution, every little helps!"
},
{
"id": 7,
"imageUrl": "https://i.imgur.com/LblyjAA.png",
"title": "You're officially a Polkadot boss!",
"details": "Wow. That one word sums it all up! You actually did it. You defeated boss mode and have now successfully entered the league of true Polkadot masterminds. You're part of the top league of developers who were able to get this far. So it's time to celebrate! Sit back, relax, and enjoy your place in the EasyA hall of fame."
},
{
"id": 8,
"tweetReason": "Tweet about completing boss mode! Show the world what you've achieved!",
"tweetContent": "I've officially become a Polkadot boss! Just defeated boss mode on the @Polkadot challenges in @easya_app for #60DaysOfPolkadot! 💪\n\nProud to be part of the top league of people to be able to complete it! 🥇",
"tweetContentUrl": ""
}
]
}
]