Skip to content

Commit

Permalink
feat: add automation course to overview
Browse files Browse the repository at this point in the history
  • Loading branch information
oceanByte committed Nov 1, 2023
1 parent fabb81f commit 77f8384
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
</div>
</ContentWrapp>


Transitioning to the operational specifics, upkeeps and triggers form the crux of on-chain tasks or jobs. For instance, invoking a smart contract function when a certain set of conditions are met epitomizes a trigger. Currently, Chainlink Automation Network supports <a style=" color:blue" href="https://docs.chain.link/chainlink-automation/overview/getting-started">three trigger types</a>:

Time-based Trigger:
Expand All @@ -40,21 +39,3 @@ Procedure: Within the Chainlink Automation app, register a new upkeep but this t

Log Trigger: Increment an on-chain counter utilizing a log as the trigger.
Procedure: Register a new upkeep, selecting Log Logic Trigger. Input the respective contract addresses and specify the emitted log details to trigger your upkeep. After registration, use the bump function to emit the log and trigger your upkeep, observing the results in the Automation dashboard. Kudos on automating your first log trigger upkeep!





---
Digital agreements have been the most common format of agreements in the past decade. From bank agreements to social media to Netflix and crypto exchanges, companies who provide services on the Internet typically use digital agreements to detail the exact conditions of the service to be provided. These are called SLAs or Service Level Agreements.

What makes a digital agreement different from a regular agreement or contractual agreement? Well, they're like standard agreements…but in a digital format. These agreements can be enforced in a court of law under certain circumstances. However, this doesn't often happen due to the costs of going to court coupled with the low value these contracts represent for individual consumers.

Customers also tend to refrain from reading these agreements due to lengthy, complex legalese. Often digital agreements give consumers very little recourse at all! Due to these reasons, the power of digital agreements is heavily skewed towards the institutions who create them rather than being a fair, equitable agreement between institutions and their consumers. A prime example of this is the <a style=" color:blue" href=" https://www.jama.work/blog/on-robinhood-and-availability"> Robinhood Gamestop downtime incident</a>.

<MissionContainer>
<div className="title">What are the SLAs you have agreed to?</div>
<div className="description">
Think about any digital services you subscribe to, for example, video streaming or banking services. Do you know the terms of the SLAs between you and the service provider? If not, take the time and read over one of them.
</div>
</MissionContainer>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#####Chapter 4:

# Practical Exercise: Automating Functions with Chainlink
# Automating Functions with Chainlink

<ContentWrapp>
<div class="imgContainer">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,12 @@
</div>
</ContentWrapp>





The quest for understanding Chainlink Automation extends beyond this course; indeed, it's the onset of a long-term learning endeavor. Given the fast-paced evolution of the blockchain domain, it's imperative to stay updated and engage in continual learning. Numerous resources are at your disposal to delve deeper into Chainlink Automation. <a style=" color:blue" href="https://docs.chain.link/">Official documentation</a>, forums, and community discussions are excellent starting points. The official <a style=" color:blue" href="https://docs.chain.link/chainlink-automation/">Chainlink documentation</a> is a treasure trove of knowledge, providing detailed insights and guidelines on various facets of Chainlink Automation.


Engagement with the Chainlink community can also significantly enrich your understanding and practical knowledge. Platforms such as <a style=" color:blue" href="https://github.com/smartcontractkit">GitHub</a>, Stack Overflow, and the Chainlink Discord channel are vibrant hubs of discussions, queries, and solutions shared among Chainlink developers and enthusiasts. These platforms provide an opportunity to ask questions, share your projects, and collaborate with others who share your passion for decentralized automation.

Moreover, partaking in hackathons, webinars, and other Chainlink or blockchain-related events can significantly enhance your understanding and hands-on skills. These events offer a platform to interact with experienced developers, learn from their journeys, and even showcase your own projects. They serve as collaborative environments where you can learn, innovate, and network with other developers within the Chainlink ecosystem.



Online <a style=" color:blue" href="https://www.youtube.com/watch?v=dj0impNJdls">courses</a>, tutorials, and blogs are <a style=" color:blue" href="https://docs.chain.link/getting-started/other-tutorials?parent=automation">additional invaluable resources</a> for continued learning. Various platforms offer advanced courses on Chainlink and blockchain technology, aiding you in expanding your understanding and honing your skills. Blogs and tutorials provide practical insights and are frequently updated with the latest advancements in the field.

Lastly, the significance of hands-on practice cannot be overstated. Embarking on your own projects, contributing to open-source projects, or solving community-posted problems can immensely bolster your mastery of Chainlink Automation. Through continuous practice, experimentation, and community engagement, you'll progress towards orchestrating your own decentralized solutions with Chainlink Automation.
Expand All @@ -37,5 +30,3 @@ Lastly, the significance of hands-on practice cannot be overstated. Embarking on
With the completion of this module, we conclude our formal journey, yet the path to exploration and mastery in Chainlink Automation remains ever inviting. The resources and community support are your allies as you continue to refine your skills and contribute to the evolving narrative of Chainlink Automation. Remember, mastery is a continuous journey. Keep practicing, keep learning, and keep contributing to the decentralized realm of Chainlink Automation!
</div>
</MissionContainer>


Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,50 @@ import { data as chapter4 } from './Chapter-4'
import { data as chapter5 } from './Chapter-5'
import { data as chapter6 } from './Chapter-6'
import { data as chapter7 } from './Chapter-7'
import { data as chapter8 } from './Chapter-8'
import {ChapterType} from "../../course.types";
import {course} from "../course";


export const chapters: ChapterType[] = [
{
pathname: `/${course.path}/chapter-1`,
name: 'What will this course cover?',
name: 'Introduction to Chainlink Automation',
data: chapter1,
},
{
pathname: `/${course.path}/chapter-2`,
name: 'What are Contracts?',
name: 'Architecture of Chainlink Automation',
data: chapter2,
},
{
pathname: `/${course.path}/chapter-3`,
name: 'Digital Agreements - What we have today',
name: 'Trigger Example for Chainlink Automation',
data: chapter3,
},
{
pathname: `/${course.path}/chapter-4`,
name: 'Smart Contracts - The Future',
name: 'Automating Functions with Chainlink',
data: chapter4,
},
{
pathname: `/${course.path}/chapter-5`,
name: 'The Smart Contract Connectivity Problem',
name: 'Fine-Tuning the Chainlink Automation Orchestra',
data: chapter5,
},
{
pathname: `/${course.path}/chapter-6`,
name: 'Chainlink Data Feeds',
name: 'Secure and Verifiable Automation',
data: chapter6,
},
{
pathname: `/${course.path}/chapter-7`,
name: 'Conclusion',
name: 'Real-world Applications of Chainlink Automation',
data: chapter7,
},
{
pathname: `/${course.path}/chapter-8`,
name: 'Resources and Continued Learning',
data: chapter8,
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {CourseStatusType, CourseTitleType} from "../../CourseType";
const data: string = getFileContent(__dirname + "/module.md");

export const course: CourseType = {
title: CourseTitleType.CHAINLINK_101,
title: CourseTitleType.AUTOMATION_INTRO,
path: "automationIntro",
description: data,
difficulty: 2,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ export const questions = [
question: 'What is Chainlink?',
answers: [
'A monolithic decentralized oracle network',
'Ten decentralized oracle networks working in conjunction,
'Ten decentralized oracle networks working in conjunction',
'A blockchain',
'A platform for creating decentralized oracle networks,
'A platform for creating decentralized oracle networks'
],
responses: ['A platform for creating decentralized oracle networks'],
},
Expand Down
4 changes: 3 additions & 1 deletion src/api/src/shared/course/courses/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import solidity102 from "./solidity102";
import solidityIntroduction from "./solidityIntroduction";
import vrfIntroduction from "./vrfIntroduction";
import vrf102 from "./vrf102";
import automationIntroduction from "./automationIntroduction";
import {ResponseError} from "../../mongo/ResponseError";
import {CourseWithChapter} from "../../../resolvers/course/getCourseChapter";
import {CourseWithChapters} from "../../../resolvers/course/getCourseById";
Expand All @@ -19,7 +20,8 @@ export const courses: CourseChapterType[] = [
solidityIntroduction,
solidity102,
vrfIntroduction,
vrf102
vrf102,
automationIntroduction
];

type CourseWithChapterOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/src/pages/Course/Course.data.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export enum CourseNameType {
VRF_V2 = 'VRF v2 Introduction',
ADVANCED_VRF_V2 = 'VRF v2 Advanced',
CHAINLINK_KEEPERS = 'Chainlink Keepers',
AUTOMATION_INTRO = 'Chainlink Automation',
}

export enum CourseStatusType {
Expand All @@ -14,7 +15,6 @@ export enum CourseStatusType {
IN_PROGRESS = 'IN PROGRESS',
}


// chaptersByCourse: Used to render chapter data of each course.
// the key in chaptersByCourse == the path in courseData
type ChapterDataDictionary = {
Expand Down

0 comments on commit 77f8384

Please sign in to comment.