ในส่วนถัดไปของการสร้างบน web3 พัฒนาการสัมพันธ์ของนักพัฒนา Edge & Node Nader Dabit ขยายขอบเขตของ web3 stack และวิธีที่นักพัฒนาสามารถสร้างแบบความคิดเกี่ยวกับด้านต่าง ๆ ของการสร้างบน web3
ฉันเข้าสู่ web3 เมื่อเมษายน 2021 หลังจากเป็นนักพัฒนา full-stack แบบดั้งเดิมเป็นเวลาประมาณ 10 ปี ขณะที่ศึกษาเรื่องเทคโนโลยีและไอเดียใหม่ ๆ ทั้งหมด สิ่งแรกที่ฉันอยากทราบคือ "web3 stack คืออะไร"
เมื่อกำลังสร้างแอปพลิเคชันเว็บหรือมือถือแบบดั้งเดิม ฉันมักจะพึ่งตัวบ่งบางเพื่อทำงาน
การใช้ส่วนประกอบหลักเหล่านี้ ฉันสามารถสร้างแอปพลิเคชันประเภทต่าง ๆ ได้มากที่สุดที่ฉันต้องการ หรืออย่างน้อยก็ได้มากที่สุดที่ฉันต้องการ ดังนั้นสิ่งนี้ดูเหมือนอย่างไรใน web3 ล่ะ?
มันกลับออกมาว่า คำตอบสำหรับสิ่งนี้ไม่ได้ง่ายขนาดนั้นเพราะ
มันยังยากสำหรับฉันที่จะเข้าใจว่าจะเริ่มต้นและทำงานกับแอปพลิเคชัน web3 ได้อย่างไร โดยที่ฉันพยาApproaching แก้ปัญหาในลักษณะเดียวกับที่ฉันทำในโลก web2
หลังจากการทำงาน การศึกษา การทดลอง และการสร้างสิ่งต่าง ๆ ในช่วง 8 เดือนที่ผ่านมา ฉันอยากจะแบ่งปันสิ่งที่ฉันได้เรียนรู้
ก่อนที่เราจะกำหนดเหล็กของ web3 stack ลองพยายามกำหนด web3 ก่อน มีความหมายจำนวนมากขึ้นอยู่กับคนที่คุณถาม แต่สำหรับฉันฉันเห็นว่านี้ definition spot on:
Web3 เป็นชุดของโปรโตคอลที่ทำให้แอปพลิเคชันที่เป็นนามธรรมแบบเต็มที่แยกออกมา
ด้วยเทคโนโลยีสแต็กที่ไม่มีการกำหนดที่นี่ เราสามารถเริ่มต้นการสร้างแอปพลิเคชันที่ไม่มีการกำหนดที่มีผลกระทบและลักษณะของตัวเอง
บางคุณสมบัติที่เปิดใช้งานโดย web3 คือ:
ในขณะที่บางส่วนของแอปพลิเคชันที่สร้างขึ้นบนเทคโนโลยีระบบอนุกรมจะสามารถแทนที่ตัวอย่างก่อนหน้านี้ แอปพลิเคชันรูปแบบใหม่ก็ได้ถูกสร้างขึ้นด้วยโอกาสใหม่ที่เปิดใช้งานโดยบล็อกเชน
การชำระเงินดิจิทัลแบบภาษาถิ่นและโครงสร้างหลังบ้านสาธารณะ - เช่น การเรียนรู้ของเครื่อง, อุปกรณ์เคลื่อนที่, ความเป็นจริงเสมือน, และบล็อกเทคโนโลยีอื่น ๆ - ทำให้สามารถสร้างประเภทของแอปพลิเคชันใหม่ๆ ได้ บางอย่างที่ยังไม่เคยคิดถึง
นี่หมายความว่าว่าทุกอย่างจะถูกแทนที่ด้วย web3 หรือไม่ ไม่จริง. ในขณะที่ฉันคิดว่าการสร้างบนเทคโนโลยีที่มีลักษณะที่กระจายเป็นทางเลือกที่ดีกว่าสำหรับบางประเภทของแอปพลิเคชัน - เช่นเดียวกับการตัดสินใจทางเทคนิคใดๆ มันขึ้นอยู่กับสิ่งที่คุณกำลังสร้าง
มาเริ่มต้นดำน้ำในเว็บ 3 สแต็คตอนนี้ ที่แบ่งออกเป็นชุดหมวดหมู่นี้
มีบล็อกเชนมากมายที่คุณสามารถเลือกที่จะสร้างบน ไม่มีตัวไหนที่เป็น "ที่ดีที่สุด" แทนที่คุณควรพิจารณาการแลกเปลี่ยนต่าง ๆ ระหว่างพวกเขา
หนึ่งสิ่งที่สำคัญอยู่เสมอสำหรับฉันเมื่อฉันเรียนรู้สิ่งใหม่ คือความคิดเกี่ยวกับการประยุกต์ใช้หลัก Paretoตามที่ฉันกำลังเรียนรู้ นั่นคือว่าวิธีที่มีประสิทธิภาพที่สุดในการใช้เวลาและความพยายามมากที่สุด ตามความคิดนี้ฉันสามารถได้รับผลต่อเนื่องและเคลื่อนไหวมากที่สุดขณะเรียนรู้สิ่งใหม่ในเวลาที่สั้นที่สุด
ในโลกบล็อกเชน การเรียนรู้ Solidity และ EVM(หรือ Ethereum Virtual Machine) อาจเป็นทายาทที่ดีที่สุดเมื่อเริ่มต้นเป็นนักพัฒนาบล็อกเชน โดยใช้ทักษะนี้ (และเทคสแต็ก) คุณสามารถสร้างไม่เพียงเฉพาะสำหรับ Ethereum เท่านั้น แต่ยังสามารถสร้างสำหรับ Ethereum Layer 2s, sidechains และบล็อกเชนอื่นๆ เช่น Avalanche, Fantom และ Celo
กล่าวถึงนั้น Rust กำลังเริ่มกลายเป็นยิ่งกว่าและยิ่งไปในโลกบล็อกเชน กับ Solana, NEAR, Polkadot และอื่นๆ ที่มีการสนับสนุนภาษา Rust ระดับหนึ่ง คุณอาจจะไม่ผิดหรือพลาดเมื่อเรียนรู้ทั้งสอง แต่สำหรับผู้เริ่มต้น ฉันจะบอกว่า Solidity ยังคงเป็นทางเลือกที่ดีกว่าหากใครบางคนถามฉันว่าวันนี้
นอกจากคำแนะนำนั้น นี่คือตัวอย่างที่ไม่สมบูรณ์ของบล็อกเชนที่มีการผสมผสานที่แข็งแกร่งของเทคโนโลยี ประโยชน์ ชุมชน การเคลื่อนไหว และความเป็นไปได้ในอนาคต:
เมื่อทำการติดต่อกับเครือข่าย คุณจะต้องใช้จุดสิ้นสุด RPC
มีวิธีหลายวิธีที่คุณสามารถทำได้
จุดปลายทาง RPC สาธารณะมักจะถูกให้โดยเครือข่าย แต่สำหรับ dapps ในโหมดการผลิตสูงสุด คุณจะต้องใช้จุดปลายทางของคุณเองเนื่องจากพวกเขาไม่เสถียรหรือไม่แนะนำสำหรับการผลิต
มีผู้ให้บริการบริการ RPC ขนาดเล็กจำนวนมากอยู่ที่นั่น นี่คือบางคน:
มีโซลูชัน web3 / กระจาย อีกด้วย Pocket Network น่าจะเป็นสิ่งที่ได้รับความนิยม
ตัวเลือกเหล่านี้อาจเป็นทางเลือกที่ดีสำหรับการสื่อสารโดยตรงกับเครือข่ายของคุณ
สำหรับการพัฒนา EVM มีสภาพแวดล้อมการพัฒนาที่ดีมีอยู่หลายรูปแบบ:
สำหรับการพัฒนา Solana Anchorเร็ว ๆ นี้กำลังเป็นจุดเริ่มต้นสำหรับนักพัฒนาใหม่ ๆ มันมี CLI สำหรับการสร้างโครง, สร้าง, และทดสอบโปรแกรม Solana และไลบรารีลูกค้าที่คุณสามารถใช้สร้างเว็บไซต์ด้านหน้า นอกจากนี้ยังรวมถึง DSL ที่ทำให้ซ่อนความซับซ้อนออกไปจากส่วนใหญ่ของความซับซ้อนที่นักพัฒนามักเจอเมื่อเริ่มต้นกับการพัฒนา Solana และ Rust
เราจะเก็บรูปภาพ วิดีโอ และไฟล์อื่น ๆ ใน web3 ที่ไหน? การเก็บข้อมูลขนาดใหญ่เช่นนั้นบนโซ่มักจะแพงมาก ดังนั้นเราคงไม่ต้องการเก็บข้อมูลในที่นั้น
แทนที่เราจะใช้หนึ่งในจำนวนเล็กน้อยของโปรโตคอลเก็บข้อมูล
นอกจากการเก็บข้อมูลและการเก็บข้อมูลบนเชื่อมโยง คุณอาจต้องเก็บข้อมูลนอกเชื่อมโยงด้วย คุณอาจใช้ประเภทเหล่านี้ของคำตอบเช่นเดียวกับว่าคุณจะใช้ฐานข้อมูลในชุดเทคโนโลยีดั้งเดิม แต่แทนที่จะทำซ้ำกันที่ n จำนวนของโหนดบนเครือข่ายที่ไม่มีส่วนรวมและด้วยเหตุนี้เป็นไปได้ว่าจะเชื่อถือได้มากขึ้น (อย่างน้อยในทฤษฎี)
ตัวเลือกบางอย่างคือ:
จากด้านความสมบูรณ์ ฉันคิดว่า ระบบนิเวศของโซลูชันการจัดเก็บข้อมูลนอกเส้นยังไม่ได้อยู่ในสถานะที่จำเป็นต้องพัฒนาออกไปสู่กรณีการใช้ที่ขั้นสูงมากขึ้นที่บางนักพัฒนาซอฟต์แวร์อาจต้องการ บางที่นี่มีความท้าทาย เช่น ข้อมูลแบบเรียลไทม์ การตรวจจับข้อขัดแย้งและการแก้ข้อขัดแย้ง การอนุญาตให้เขียน การจัดเตรียมเอกสาร และประสบการณ์ของนักพัฒนาทั่วไป
การผสานข้อมูลนอกเครือข่ายกับโปรโตคอลบล็อกเชนเป็นหนึ่งในอุปสรรคใหญ่สุดที่เราต้องเอาชนะก่อนที่เราจะมีสแต็กโปรโตคอลที่ไม่มีการกำหนดอย่างเต็มที่สามารถรองรับประเภทแอปพลิเคชันใดก็ได้
มีความแตกต่างมากมายในวิธีที่เราติดต่อและสร้างบนบล็อกเชนเทียบกับฐานข้อมูลในชุดเทคโนโลยีแบบดั้งเดิม ด้วยบล็อกเชน ข้อมูลไม่ได้ถูกเก็บไว้ในรูปแบบที่สามารถบรรจุหรือใช้งานได้อย่างมีประสิทธิภาพหรือง่ายดายโดยตรงจากแอปพลิเคชันหรือโฟนต์เอ็นด์อื่น ๆ
บล็อกเชนถูกปรับแต่งให้เหมาะสมกับการดำเนินการเขียน เรามักได้ยินเกี่ยวกับนวัตกรรมที่เกิดขึ้นซึ่งเน้นไปที่การทำธุรกรรมต่อวินาที ระยะเวลาบล็อก และค่าใช้จ่ายในการทำธุรกรรม ข้อมูลบล็อกเชนถูกเขียนลงในบล็อกตลอดเวลา ทำให้การดำเนินการที่ไม่ใช่การอ่านข้อมูลพื้นฐานเป็นไปไม่ได้
ในแอปพลิเคชันส่วนใหญ่ คุณต้องการคุณสมบัติเช่นข้อมูลที่เกี่ยวข้อง การเรียงลำดับ การกรอง การค้นหาข้อความแบบเต็ม การแบ่งหน้า และอื่น ๆ ในการทำเช่นนั้น ข้อมูลจำเป็นต้องถูกจัดดัชนีและจัดองค์ให้สามารถเรียกข้อมูลได้อย่างมีประสิทธิภาพ
ตามที่เคยเป็น นั่นคืองานที่ฐานข้อมูลทำในชุดเทคโนโลยีที่ Centralized แต่ชั้นดัชนีนั้นขาดหายไปในชุดเทคโนโลยี web3
The Graph เป็นโปรโตคอลสําหรับการจัดทําดัชนีและการสืบค้นข้อมูลบล็อกเชนที่ทําให้กระบวนการนี้ง่ายขึ้นมากและนําเสนอโซลูชันแบบกระจายอํานาจสําหรับการทําเช่นนั้น ทุกคนสามารถสร้างและเผยแพร่ API GraphQL แบบเปิดที่เรียกว่ากราฟย่อยทําให้ข้อมูลบล็อกเชนง่ายต่อการสืบค้น
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ The Graph โปรดตรวจสอบเอกสารที่นี่หรือคู่มือของฉันที่นี่.
Identity is a completely different paradigm in web3. In web2, authentication is almost always based on a user’s personal information. This information is usually gathered either via a form or an OAuth provider that asks the user to hand over in exchange for access to the application.
ใน web3 อัตลักษณ์หมุนรอบไปที่กระทรวงความคิดของกระเป๋าเงินและการเข้ารหัสด้วยกุญแจสาธารณะ.
ในขณะที่ชื่อ “wallet” บรรลุวัตถุประสงค์ของมัน ผมพบว่าผู้คนที่เพิ่งรู้จัก web3 มักพบคำศัพท์ที่เป็นปัญหาเมื่อเกี่ยวข้องกับการพิสูจน์ตัวตนและเอกลักษณ์ หวังว่าในอนาคตเราจะสามารถคิดค้นวิธีอื่น ๆ เพื่อสื่อสารว่า “wallet” คืออะไร โดยที่มันรวมด้านการเงินและตัวตนและเสียงชื่นชม
ในฐานะนักพัฒนา คุณจะต้องเข้าใจวิธีการเข้าถึงและปฏิสัมพันธ์กับวอลเล็ตและที่อยู่ของผู้ใช้ในรูปแบบต่าง ๆ
ในระดับพื้นฐานมาก (และความต้องการที่สามารถพบเห็นได้ง่าย) คุณอาจต้องการขอเข้าถึงกระเป๋าเงินของผู้ใช้ ในการทำเช่นนี้ โดยปกติคุณจะสามารถเข้าถึงกระเป๋าเงินของผู้ใช้ในบริบทของหน้าต่าง (เว็บเบราว์เซอร์) หรือโดยใช้บางสิ่งแบบWalletConnectหรืออะแดปเตอร์กระเป๋าเงินของ Solana.
เช่น เช่น หากพวกเขามีกระเป๋าเงิน Ethereum ที่ใช้ได้ คุณจะสามารถเข้าถึง window.ethereum โดยเดียวกันสำหรับ Solana (window.solana), Arweave (window.arweaveWallet) และอีกหลายอย่าง WalletConnect เหมาะสำหรับเว็บมือถือและ React Native เนื่องจากมันช่วยให้ผู้ใช้สามารถอนุญาตการใช้งานโดยตรงจากกระเป๋าเงินบนมือถือของพวกเขา
ถ้าคุณต้องการจัดการการตรวจสอบตนเอง คุณสามารถอนุญาตให้ผู้ใช้ลงนามสัญญาและถอดรหัสที่ใดก็ได้เพื่อตรวจสอบความถูกต้องของผู้ใช้ แต่สิ่งนี้มักต้องใช้เซิร์ฟเวอร์ที่นี่เป็นตัวอย่างที่แสดงให้เห็นว่ามันอาจจะดูอย่างไรเมื่อใช้งานกระเป๋าเงิน EVM และ ที่นี่เป็นตัวอย่างของวิธีการทำเช่นนี้ด้วย Solana / Phantom
การจัดการโปรไฟล์ผู้ใช้ในรูปแบบกระจายข้อมูลมีอย่างไรบ้างเครื่องหูฟังเซรามิก นําเสนอโปรโตคอลและชุดเครื่องมือที่แข็งแกร่งที่สุดสําหรับการจัดการเอกลักษณ์ที่กระจาย พวกเขาได้ปล่อยโพสต์บล็อกกำหนดขอบเขตบางส่วนของการอัปเดตล่าสุดของพวกเขาและให้คำแนะนำเกี่ยวกับวิธีการทำงานร่วมกันของเครื่องมือทั้งหมด ฉันจะเริ่มต้นที่นั่นแล้วจึงสำรวจเอกสารของพวกเขาเพื่อเข้าใจวิธีเริ่มต้นการสร้าง และพิจารณาการตรวจสอบโครงการตัวอย่างของฉันที่นี่ ที่ใช้เซรามิก self.id.
ถ้าคุณต้องการดึงข้อมูลผู้ใช้ENS text records, the ENSJS library offers a nice API for fetching user data:
const ens = new ENS({ provider, ensAddress: getEnsAddress(‘1’) })
const content = await ens.name(‘sha.eth’).getText(‘avatar’
SpruceID ยังเป็นสิ่งที่ดูมีแนวโน้ม แต่ฉันยังไม่ได้ลอง
เซรามิก และสปรูซทั้งคู่นำไปใช้W3C DIDspecificiation, ซึ่งเองก็เป็นสิ่งหนึ่งที่ฉันคิดว่าเป็นบล็อกสำคัญของ web3 ด้วยเช่นกัน กับความเข้าใจนั้น การประยุกต์ใช้ DIDs ในลักษณะที่มีการควบคุมจากศูนย์ทุกอย่างนั้นเป็นการล้มเลิกแนวคิดของสเปคตรอยที่พยายามทำให้ได้
ตามที่เรื่อง JavaScript frameworks ไป คุณสามารถสร้างด้วยอะไรก็ได้จริง ๆ เนื่องจาก client-side blockchain SDKs เป็นโครงสร้างที่ไม่ขึ้นอยู่กับเฟรมเวิร์กส่วนใหญ่ ที่พูดไปคือ โครงการและตัวอย่างจำนวนมากถูกสร้างขึ้นใน React ยังมีหลายโรงบาลอีกเช่นนั้นSolana อะแดปเตอร์กระเป๋าเงินที่ให้บริการสิ่งประโยชน์เพิ่มเติมสำหรับ React ดังนั้นฉันคิดว่าการเรียนรู้หรือความรู้ความเชี่ยวชาญใน React จะเป็นการเคลื่อนไหวที่ฉลาด
สำหรับ SDK ด้าน client-side ใน Ethereum มีweb3.js และ ethers.js. สำหรับฉัน Ethers เป็นที่เข้าถึงง่ายกว่าและมีเอกสารที่ดีกว่า, แม้ว่า web3.js จะมีมานานแล้ว
ใน Solana, คุณจะเป็นไปหนึ่งที่น่าจะทำงานกับ @solana/web3.jsและ / หรือสมอ. ฉันพบว่าไลบรารีไคลเอ็นต์ Anchor เป็นของฉันในการสร้างโปรแกรม Solana เนื่องจากฉันใช้เฟรมเวิร์ก Anchor อยู่แล้วและฉันพบว่ามันง่ายกว่ามากที่จะเข้าใจแล้ว @solana/web3.js.
Oracles allow developers access to read real-world data & external systems from within a smart contract.
ตัวอย่างเช่น แอปพลิเคชันทางการเงินส่วนใหญ่ต้องการความรู้เกี่ยวกับข้อมูลในโลกแห่งความเป็นจริงและเหตุการณ์ที่เกิดขึ้นนอกเครือข่าย ดังนั้น Oracles จึงมีความสําคัญอย่างยิ่งใน DeFi
Chainlinkเป็น Oracle ที่ทำให้สามารถเข้าถึงข้อมูลจริงและการคำนวณที่ไม่อยู่ในโซน พร้อมรักษาความมั่นคงและความเชื่อถือที่เป็นสิ่งที่เกิดขึ้นไปตามเทคโนโลยีบล็อกเชน
Flux เป็น Oracle แบบ cross-chain ที่ให้สัญญาอัจฉริยะพร้อมการเข้าถึงฟีดข้อมูลที่ปลอดภัยทางเศรษฐกิจ
Radicleเป็นโปรโตคอลการทำงานร่วมกันของโค้ดแบบใน Git ที่มีลักษณะแบบกระจาย สามารถพิจารณาได้ว่าเป็นเวอร์ชันที่กระจายของ GitHub
Livepeerเป็นเครือข่ายสตรีมมิงวิดีโอที่ไม่มีศูนย์กลาง มีความสมบูรณ์และได้รับการใช้งานอย่างแพร่หลาย มีกว่า 70,000 GPU ที่ใช้งานอยู่บนเครือข่าย
โพสต์นี้จะเป็นเอกสารที่มีชีวิตที่ฉันติดตามเมื่อฉันเรียนรู้ทดลองและรวบรวมข้อเสนอแนะจากนักพัฒนาที่สร้างใน web3
ถ้าคุณมีคำแนะนำหรือไอเดียใด ๆ เกี่ยวกับสิ่งที่ฉันพลาดไป โปรดติดต่อและแบ่งปันความคิดของคุณกับฉัน มันทำให้ตื่นเต้นที่จะเห็นกิจกรรมทั้งหมดที่เกิดขึ้นรอบ ๆ web3 เนื่องจากนักพัฒนากำลังเข้ามาและมีส่วนร่วม ในขณะที่ๅโครงสร้างพื้นฐานยังคงกำลังพัฒนาอยู่ วิสัยทัศน์ในการสร้างโปรโตคอลและแอปพลิเคชันที่แท้จริงที่อนุญาตให้คนสามารถประสานงานโดยไม่ต้องมอบอำนาจและควบคุมให้กับบริษัทใหญ่เป็นสิ่งสำคัญ และเรากำลังใกล้จะทำให้วิสัยทัศน์นี้เป็นความเป็นจริง
ในส่วนถัดไปของการสร้างบน web3 พัฒนาการสัมพันธ์ของนักพัฒนา Edge & Node Nader Dabit ขยายขอบเขตของ web3 stack และวิธีที่นักพัฒนาสามารถสร้างแบบความคิดเกี่ยวกับด้านต่าง ๆ ของการสร้างบน web3
ฉันเข้าสู่ web3 เมื่อเมษายน 2021 หลังจากเป็นนักพัฒนา full-stack แบบดั้งเดิมเป็นเวลาประมาณ 10 ปี ขณะที่ศึกษาเรื่องเทคโนโลยีและไอเดียใหม่ ๆ ทั้งหมด สิ่งแรกที่ฉันอยากทราบคือ "web3 stack คืออะไร"
เมื่อกำลังสร้างแอปพลิเคชันเว็บหรือมือถือแบบดั้งเดิม ฉันมักจะพึ่งตัวบ่งบางเพื่อทำงาน
การใช้ส่วนประกอบหลักเหล่านี้ ฉันสามารถสร้างแอปพลิเคชันประเภทต่าง ๆ ได้มากที่สุดที่ฉันต้องการ หรืออย่างน้อยก็ได้มากที่สุดที่ฉันต้องการ ดังนั้นสิ่งนี้ดูเหมือนอย่างไรใน web3 ล่ะ?
มันกลับออกมาว่า คำตอบสำหรับสิ่งนี้ไม่ได้ง่ายขนาดนั้นเพราะ
มันยังยากสำหรับฉันที่จะเข้าใจว่าจะเริ่มต้นและทำงานกับแอปพลิเคชัน web3 ได้อย่างไร โดยที่ฉันพยาApproaching แก้ปัญหาในลักษณะเดียวกับที่ฉันทำในโลก web2
หลังจากการทำงาน การศึกษา การทดลอง และการสร้างสิ่งต่าง ๆ ในช่วง 8 เดือนที่ผ่านมา ฉันอยากจะแบ่งปันสิ่งที่ฉันได้เรียนรู้
ก่อนที่เราจะกำหนดเหล็กของ web3 stack ลองพยายามกำหนด web3 ก่อน มีความหมายจำนวนมากขึ้นอยู่กับคนที่คุณถาม แต่สำหรับฉันฉันเห็นว่านี้ definition spot on:
Web3 เป็นชุดของโปรโตคอลที่ทำให้แอปพลิเคชันที่เป็นนามธรรมแบบเต็มที่แยกออกมา
ด้วยเทคโนโลยีสแต็กที่ไม่มีการกำหนดที่นี่ เราสามารถเริ่มต้นการสร้างแอปพลิเคชันที่ไม่มีการกำหนดที่มีผลกระทบและลักษณะของตัวเอง
บางคุณสมบัติที่เปิดใช้งานโดย web3 คือ:
ในขณะที่บางส่วนของแอปพลิเคชันที่สร้างขึ้นบนเทคโนโลยีระบบอนุกรมจะสามารถแทนที่ตัวอย่างก่อนหน้านี้ แอปพลิเคชันรูปแบบใหม่ก็ได้ถูกสร้างขึ้นด้วยโอกาสใหม่ที่เปิดใช้งานโดยบล็อกเชน
การชำระเงินดิจิทัลแบบภาษาถิ่นและโครงสร้างหลังบ้านสาธารณะ - เช่น การเรียนรู้ของเครื่อง, อุปกรณ์เคลื่อนที่, ความเป็นจริงเสมือน, และบล็อกเทคโนโลยีอื่น ๆ - ทำให้สามารถสร้างประเภทของแอปพลิเคชันใหม่ๆ ได้ บางอย่างที่ยังไม่เคยคิดถึง
นี่หมายความว่าว่าทุกอย่างจะถูกแทนที่ด้วย web3 หรือไม่ ไม่จริง. ในขณะที่ฉันคิดว่าการสร้างบนเทคโนโลยีที่มีลักษณะที่กระจายเป็นทางเลือกที่ดีกว่าสำหรับบางประเภทของแอปพลิเคชัน - เช่นเดียวกับการตัดสินใจทางเทคนิคใดๆ มันขึ้นอยู่กับสิ่งที่คุณกำลังสร้าง
มาเริ่มต้นดำน้ำในเว็บ 3 สแต็คตอนนี้ ที่แบ่งออกเป็นชุดหมวดหมู่นี้
มีบล็อกเชนมากมายที่คุณสามารถเลือกที่จะสร้างบน ไม่มีตัวไหนที่เป็น "ที่ดีที่สุด" แทนที่คุณควรพิจารณาการแลกเปลี่ยนต่าง ๆ ระหว่างพวกเขา
หนึ่งสิ่งที่สำคัญอยู่เสมอสำหรับฉันเมื่อฉันเรียนรู้สิ่งใหม่ คือความคิดเกี่ยวกับการประยุกต์ใช้หลัก Paretoตามที่ฉันกำลังเรียนรู้ นั่นคือว่าวิธีที่มีประสิทธิภาพที่สุดในการใช้เวลาและความพยายามมากที่สุด ตามความคิดนี้ฉันสามารถได้รับผลต่อเนื่องและเคลื่อนไหวมากที่สุดขณะเรียนรู้สิ่งใหม่ในเวลาที่สั้นที่สุด
ในโลกบล็อกเชน การเรียนรู้ Solidity และ EVM(หรือ Ethereum Virtual Machine) อาจเป็นทายาทที่ดีที่สุดเมื่อเริ่มต้นเป็นนักพัฒนาบล็อกเชน โดยใช้ทักษะนี้ (และเทคสแต็ก) คุณสามารถสร้างไม่เพียงเฉพาะสำหรับ Ethereum เท่านั้น แต่ยังสามารถสร้างสำหรับ Ethereum Layer 2s, sidechains และบล็อกเชนอื่นๆ เช่น Avalanche, Fantom และ Celo
กล่าวถึงนั้น Rust กำลังเริ่มกลายเป็นยิ่งกว่าและยิ่งไปในโลกบล็อกเชน กับ Solana, NEAR, Polkadot และอื่นๆ ที่มีการสนับสนุนภาษา Rust ระดับหนึ่ง คุณอาจจะไม่ผิดหรือพลาดเมื่อเรียนรู้ทั้งสอง แต่สำหรับผู้เริ่มต้น ฉันจะบอกว่า Solidity ยังคงเป็นทางเลือกที่ดีกว่าหากใครบางคนถามฉันว่าวันนี้
นอกจากคำแนะนำนั้น นี่คือตัวอย่างที่ไม่สมบูรณ์ของบล็อกเชนที่มีการผสมผสานที่แข็งแกร่งของเทคโนโลยี ประโยชน์ ชุมชน การเคลื่อนไหว และความเป็นไปได้ในอนาคต:
เมื่อทำการติดต่อกับเครือข่าย คุณจะต้องใช้จุดสิ้นสุด RPC
มีวิธีหลายวิธีที่คุณสามารถทำได้
จุดปลายทาง RPC สาธารณะมักจะถูกให้โดยเครือข่าย แต่สำหรับ dapps ในโหมดการผลิตสูงสุด คุณจะต้องใช้จุดปลายทางของคุณเองเนื่องจากพวกเขาไม่เสถียรหรือไม่แนะนำสำหรับการผลิต
มีผู้ให้บริการบริการ RPC ขนาดเล็กจำนวนมากอยู่ที่นั่น นี่คือบางคน:
มีโซลูชัน web3 / กระจาย อีกด้วย Pocket Network น่าจะเป็นสิ่งที่ได้รับความนิยม
ตัวเลือกเหล่านี้อาจเป็นทางเลือกที่ดีสำหรับการสื่อสารโดยตรงกับเครือข่ายของคุณ
สำหรับการพัฒนา EVM มีสภาพแวดล้อมการพัฒนาที่ดีมีอยู่หลายรูปแบบ:
สำหรับการพัฒนา Solana Anchorเร็ว ๆ นี้กำลังเป็นจุดเริ่มต้นสำหรับนักพัฒนาใหม่ ๆ มันมี CLI สำหรับการสร้างโครง, สร้าง, และทดสอบโปรแกรม Solana และไลบรารีลูกค้าที่คุณสามารถใช้สร้างเว็บไซต์ด้านหน้า นอกจากนี้ยังรวมถึง DSL ที่ทำให้ซ่อนความซับซ้อนออกไปจากส่วนใหญ่ของความซับซ้อนที่นักพัฒนามักเจอเมื่อเริ่มต้นกับการพัฒนา Solana และ Rust
เราจะเก็บรูปภาพ วิดีโอ และไฟล์อื่น ๆ ใน web3 ที่ไหน? การเก็บข้อมูลขนาดใหญ่เช่นนั้นบนโซ่มักจะแพงมาก ดังนั้นเราคงไม่ต้องการเก็บข้อมูลในที่นั้น
แทนที่เราจะใช้หนึ่งในจำนวนเล็กน้อยของโปรโตคอลเก็บข้อมูล
นอกจากการเก็บข้อมูลและการเก็บข้อมูลบนเชื่อมโยง คุณอาจต้องเก็บข้อมูลนอกเชื่อมโยงด้วย คุณอาจใช้ประเภทเหล่านี้ของคำตอบเช่นเดียวกับว่าคุณจะใช้ฐานข้อมูลในชุดเทคโนโลยีดั้งเดิม แต่แทนที่จะทำซ้ำกันที่ n จำนวนของโหนดบนเครือข่ายที่ไม่มีส่วนรวมและด้วยเหตุนี้เป็นไปได้ว่าจะเชื่อถือได้มากขึ้น (อย่างน้อยในทฤษฎี)
ตัวเลือกบางอย่างคือ:
จากด้านความสมบูรณ์ ฉันคิดว่า ระบบนิเวศของโซลูชันการจัดเก็บข้อมูลนอกเส้นยังไม่ได้อยู่ในสถานะที่จำเป็นต้องพัฒนาออกไปสู่กรณีการใช้ที่ขั้นสูงมากขึ้นที่บางนักพัฒนาซอฟต์แวร์อาจต้องการ บางที่นี่มีความท้าทาย เช่น ข้อมูลแบบเรียลไทม์ การตรวจจับข้อขัดแย้งและการแก้ข้อขัดแย้ง การอนุญาตให้เขียน การจัดเตรียมเอกสาร และประสบการณ์ของนักพัฒนาทั่วไป
การผสานข้อมูลนอกเครือข่ายกับโปรโตคอลบล็อกเชนเป็นหนึ่งในอุปสรรคใหญ่สุดที่เราต้องเอาชนะก่อนที่เราจะมีสแต็กโปรโตคอลที่ไม่มีการกำหนดอย่างเต็มที่สามารถรองรับประเภทแอปพลิเคชันใดก็ได้
มีความแตกต่างมากมายในวิธีที่เราติดต่อและสร้างบนบล็อกเชนเทียบกับฐานข้อมูลในชุดเทคโนโลยีแบบดั้งเดิม ด้วยบล็อกเชน ข้อมูลไม่ได้ถูกเก็บไว้ในรูปแบบที่สามารถบรรจุหรือใช้งานได้อย่างมีประสิทธิภาพหรือง่ายดายโดยตรงจากแอปพลิเคชันหรือโฟนต์เอ็นด์อื่น ๆ
บล็อกเชนถูกปรับแต่งให้เหมาะสมกับการดำเนินการเขียน เรามักได้ยินเกี่ยวกับนวัตกรรมที่เกิดขึ้นซึ่งเน้นไปที่การทำธุรกรรมต่อวินาที ระยะเวลาบล็อก และค่าใช้จ่ายในการทำธุรกรรม ข้อมูลบล็อกเชนถูกเขียนลงในบล็อกตลอดเวลา ทำให้การดำเนินการที่ไม่ใช่การอ่านข้อมูลพื้นฐานเป็นไปไม่ได้
ในแอปพลิเคชันส่วนใหญ่ คุณต้องการคุณสมบัติเช่นข้อมูลที่เกี่ยวข้อง การเรียงลำดับ การกรอง การค้นหาข้อความแบบเต็ม การแบ่งหน้า และอื่น ๆ ในการทำเช่นนั้น ข้อมูลจำเป็นต้องถูกจัดดัชนีและจัดองค์ให้สามารถเรียกข้อมูลได้อย่างมีประสิทธิภาพ
ตามที่เคยเป็น นั่นคืองานที่ฐานข้อมูลทำในชุดเทคโนโลยีที่ Centralized แต่ชั้นดัชนีนั้นขาดหายไปในชุดเทคโนโลยี web3
The Graph เป็นโปรโตคอลสําหรับการจัดทําดัชนีและการสืบค้นข้อมูลบล็อกเชนที่ทําให้กระบวนการนี้ง่ายขึ้นมากและนําเสนอโซลูชันแบบกระจายอํานาจสําหรับการทําเช่นนั้น ทุกคนสามารถสร้างและเผยแพร่ API GraphQL แบบเปิดที่เรียกว่ากราฟย่อยทําให้ข้อมูลบล็อกเชนง่ายต่อการสืบค้น
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ The Graph โปรดตรวจสอบเอกสารที่นี่หรือคู่มือของฉันที่นี่.
Identity is a completely different paradigm in web3. In web2, authentication is almost always based on a user’s personal information. This information is usually gathered either via a form or an OAuth provider that asks the user to hand over in exchange for access to the application.
ใน web3 อัตลักษณ์หมุนรอบไปที่กระทรวงความคิดของกระเป๋าเงินและการเข้ารหัสด้วยกุญแจสาธารณะ.
ในขณะที่ชื่อ “wallet” บรรลุวัตถุประสงค์ของมัน ผมพบว่าผู้คนที่เพิ่งรู้จัก web3 มักพบคำศัพท์ที่เป็นปัญหาเมื่อเกี่ยวข้องกับการพิสูจน์ตัวตนและเอกลักษณ์ หวังว่าในอนาคตเราจะสามารถคิดค้นวิธีอื่น ๆ เพื่อสื่อสารว่า “wallet” คืออะไร โดยที่มันรวมด้านการเงินและตัวตนและเสียงชื่นชม
ในฐานะนักพัฒนา คุณจะต้องเข้าใจวิธีการเข้าถึงและปฏิสัมพันธ์กับวอลเล็ตและที่อยู่ของผู้ใช้ในรูปแบบต่าง ๆ
ในระดับพื้นฐานมาก (และความต้องการที่สามารถพบเห็นได้ง่าย) คุณอาจต้องการขอเข้าถึงกระเป๋าเงินของผู้ใช้ ในการทำเช่นนี้ โดยปกติคุณจะสามารถเข้าถึงกระเป๋าเงินของผู้ใช้ในบริบทของหน้าต่าง (เว็บเบราว์เซอร์) หรือโดยใช้บางสิ่งแบบWalletConnectหรืออะแดปเตอร์กระเป๋าเงินของ Solana.
เช่น เช่น หากพวกเขามีกระเป๋าเงิน Ethereum ที่ใช้ได้ คุณจะสามารถเข้าถึง window.ethereum โดยเดียวกันสำหรับ Solana (window.solana), Arweave (window.arweaveWallet) และอีกหลายอย่าง WalletConnect เหมาะสำหรับเว็บมือถือและ React Native เนื่องจากมันช่วยให้ผู้ใช้สามารถอนุญาตการใช้งานโดยตรงจากกระเป๋าเงินบนมือถือของพวกเขา
ถ้าคุณต้องการจัดการการตรวจสอบตนเอง คุณสามารถอนุญาตให้ผู้ใช้ลงนามสัญญาและถอดรหัสที่ใดก็ได้เพื่อตรวจสอบความถูกต้องของผู้ใช้ แต่สิ่งนี้มักต้องใช้เซิร์ฟเวอร์ที่นี่เป็นตัวอย่างที่แสดงให้เห็นว่ามันอาจจะดูอย่างไรเมื่อใช้งานกระเป๋าเงิน EVM และ ที่นี่เป็นตัวอย่างของวิธีการทำเช่นนี้ด้วย Solana / Phantom
การจัดการโปรไฟล์ผู้ใช้ในรูปแบบกระจายข้อมูลมีอย่างไรบ้างเครื่องหูฟังเซรามิก นําเสนอโปรโตคอลและชุดเครื่องมือที่แข็งแกร่งที่สุดสําหรับการจัดการเอกลักษณ์ที่กระจาย พวกเขาได้ปล่อยโพสต์บล็อกกำหนดขอบเขตบางส่วนของการอัปเดตล่าสุดของพวกเขาและให้คำแนะนำเกี่ยวกับวิธีการทำงานร่วมกันของเครื่องมือทั้งหมด ฉันจะเริ่มต้นที่นั่นแล้วจึงสำรวจเอกสารของพวกเขาเพื่อเข้าใจวิธีเริ่มต้นการสร้าง และพิจารณาการตรวจสอบโครงการตัวอย่างของฉันที่นี่ ที่ใช้เซรามิก self.id.
ถ้าคุณต้องการดึงข้อมูลผู้ใช้ENS text records, the ENSJS library offers a nice API for fetching user data:
const ens = new ENS({ provider, ensAddress: getEnsAddress(‘1’) })
const content = await ens.name(‘sha.eth’).getText(‘avatar’
SpruceID ยังเป็นสิ่งที่ดูมีแนวโน้ม แต่ฉันยังไม่ได้ลอง
เซรามิก และสปรูซทั้งคู่นำไปใช้W3C DIDspecificiation, ซึ่งเองก็เป็นสิ่งหนึ่งที่ฉันคิดว่าเป็นบล็อกสำคัญของ web3 ด้วยเช่นกัน กับความเข้าใจนั้น การประยุกต์ใช้ DIDs ในลักษณะที่มีการควบคุมจากศูนย์ทุกอย่างนั้นเป็นการล้มเลิกแนวคิดของสเปคตรอยที่พยายามทำให้ได้
ตามที่เรื่อง JavaScript frameworks ไป คุณสามารถสร้างด้วยอะไรก็ได้จริง ๆ เนื่องจาก client-side blockchain SDKs เป็นโครงสร้างที่ไม่ขึ้นอยู่กับเฟรมเวิร์กส่วนใหญ่ ที่พูดไปคือ โครงการและตัวอย่างจำนวนมากถูกสร้างขึ้นใน React ยังมีหลายโรงบาลอีกเช่นนั้นSolana อะแดปเตอร์กระเป๋าเงินที่ให้บริการสิ่งประโยชน์เพิ่มเติมสำหรับ React ดังนั้นฉันคิดว่าการเรียนรู้หรือความรู้ความเชี่ยวชาญใน React จะเป็นการเคลื่อนไหวที่ฉลาด
สำหรับ SDK ด้าน client-side ใน Ethereum มีweb3.js และ ethers.js. สำหรับฉัน Ethers เป็นที่เข้าถึงง่ายกว่าและมีเอกสารที่ดีกว่า, แม้ว่า web3.js จะมีมานานแล้ว
ใน Solana, คุณจะเป็นไปหนึ่งที่น่าจะทำงานกับ @solana/web3.jsและ / หรือสมอ. ฉันพบว่าไลบรารีไคลเอ็นต์ Anchor เป็นของฉันในการสร้างโปรแกรม Solana เนื่องจากฉันใช้เฟรมเวิร์ก Anchor อยู่แล้วและฉันพบว่ามันง่ายกว่ามากที่จะเข้าใจแล้ว @solana/web3.js.
Oracles allow developers access to read real-world data & external systems from within a smart contract.
ตัวอย่างเช่น แอปพลิเคชันทางการเงินส่วนใหญ่ต้องการความรู้เกี่ยวกับข้อมูลในโลกแห่งความเป็นจริงและเหตุการณ์ที่เกิดขึ้นนอกเครือข่าย ดังนั้น Oracles จึงมีความสําคัญอย่างยิ่งใน DeFi
Chainlinkเป็น Oracle ที่ทำให้สามารถเข้าถึงข้อมูลจริงและการคำนวณที่ไม่อยู่ในโซน พร้อมรักษาความมั่นคงและความเชื่อถือที่เป็นสิ่งที่เกิดขึ้นไปตามเทคโนโลยีบล็อกเชน
Flux เป็น Oracle แบบ cross-chain ที่ให้สัญญาอัจฉริยะพร้อมการเข้าถึงฟีดข้อมูลที่ปลอดภัยทางเศรษฐกิจ
Radicleเป็นโปรโตคอลการทำงานร่วมกันของโค้ดแบบใน Git ที่มีลักษณะแบบกระจาย สามารถพิจารณาได้ว่าเป็นเวอร์ชันที่กระจายของ GitHub
Livepeerเป็นเครือข่ายสตรีมมิงวิดีโอที่ไม่มีศูนย์กลาง มีความสมบูรณ์และได้รับการใช้งานอย่างแพร่หลาย มีกว่า 70,000 GPU ที่ใช้งานอยู่บนเครือข่าย
โพสต์นี้จะเป็นเอกสารที่มีชีวิตที่ฉันติดตามเมื่อฉันเรียนรู้ทดลองและรวบรวมข้อเสนอแนะจากนักพัฒนาที่สร้างใน web3
ถ้าคุณมีคำแนะนำหรือไอเดียใด ๆ เกี่ยวกับสิ่งที่ฉันพลาดไป โปรดติดต่อและแบ่งปันความคิดของคุณกับฉัน มันทำให้ตื่นเต้นที่จะเห็นกิจกรรมทั้งหมดที่เกิดขึ้นรอบ ๆ web3 เนื่องจากนักพัฒนากำลังเข้ามาและมีส่วนร่วม ในขณะที่ๅโครงสร้างพื้นฐานยังคงกำลังพัฒนาอยู่ วิสัยทัศน์ในการสร้างโปรโตคอลและแอปพลิเคชันที่แท้จริงที่อนุญาตให้คนสามารถประสานงานโดยไม่ต้องมอบอำนาจและควบคุมให้กับบริษัทใหญ่เป็นสิ่งสำคัญ และเรากำลังใกล้จะทำให้วิสัยทัศน์นี้เป็นความเป็นจริง