Англійська для розробників Web3 і NFT
Освоєння словникового запасу для обговорення токенів, монетизації, торбинок і газових платежів як розробника програм web3 і NFT.
Розробка Web3 і NFT поєднує криптографію, розподілені системи і швидко розвивається словник продуктів, який навіть досвідчені інженери, нові в просторі, знаходять дезорієнтованими. Такі терміни, як «карбування», «газ» і «зберігання» мають точне технічне і фінансове значення, і отримання їх правильного значення як для чіткого інженерного спілкування, так і для точного опису ризику для користувачів і зацікавлених сторін.
Ключовий словник
- Меню Процес створення нового токена на блокчейні — для NFT це означає створення унікального токена і запис його власності і метаданих на ланцюзі вперше.
- Приклад: « Спроба виконання транзакції з виготовлення монет зазнала невдачі, оскільки у торбинці користувача не вистачало коштів для покриття плати за газ, а не через ваду у нашому договорі. » *
Оплата за бензин Оплата транзакції, що сплачується мережі за обробку і перевірку операції на блокчейні, яка змінюється залежно від перевантаженості мережі і обчислювальної складності операції.
- Приклад: “Ми об’єднали ці операції в одну транзакцію, щоб зменшити загальну плату за газ у порівнянні з карбуванням кожного жетона окремо.” *
** Торбинка (зберігання проти не зберігання) ** Торбинка з обслуговуванням — це така, де третя сторона (наприклад, біржа) зберігає закритий ключ від імені користувача; торбинка без обслуговування надає користувачеві виключний контроль над своїми закритими ключами.
- Приклад: « Користувачам, які вступають у систему через нашу торбинку, не потрібно керувати ключовою фразою, але це також означає, що ми відповідаємо за безпеку їх ключів. »*
** Розумний контракт ** Самовиконувальний код, розгорнутий на блокчейні, який автоматично виконує умови угоди, як тільки її умови будуть виконані, без необхідності довіреного посередника.
- Приклад: “Кмітливий контракт автоматично передає авторські винагороди початковому творцю кожного разу, коли NFT перепродається на підтримувальному ринку.” *
Включено-включено-выключено «On-chain» відноситься до даних або логіки, що живе безпосередньо на блокчейні і перевіряється мережевим консенсусом; «off-chain» відноситься до даних або обробки, що відбувається поза блокчейном, часто з причин вартості або продуктивності.
- Приклад: “Ми зберігаємо запис про власника NFT на ланцюзі, але фактичний файл зображення зберігається поза ланцюгом, з посиланням на ланцюг тільки на геш-контент.” *
** Стандарт токенів (ERC-721, ERC-1155) ** Опублікована специфікація, яка визначає, як токени певного типу поводяться на блокчейні - ERC-721 визначає унікальні, незамінні токени, в той час як ERC-1155 підтримує як замінні, так і незамінні токени в одному контракті. Приклад: “Ми використовуємо ERC-1155 замість ERC-721, тому що нам потрібно підтримувати як унікальні колекційні предмети, так і замінну валюту в грі в одному контракті.”
** Підпис / підписання операції ** Криптографічний процес, за допомогою якого власник торбинки авторизує транзакцію за допомогою свого закритих ключа, доводячи, що він згодні з цією операцією, не розкриваючи самого ключа.
- Приклад: « Користувач повинен підписати цю транзакцію у своїй торбинці, перш ніж ми зможемо надіслати її до мережі — ми не можемо зробити це від його імені. »*
Вход в атмосферу Уразливість розумного контракту, за якої зовнішній виклик дозволяє зловмисному контракту знову ввійти до функції виклику до завершення першого виклику, що може призвести до виснаження коштів.
- Приклад: « Ми додали захист від повторного входу навколо функції вилучення після того, як аудит позначив її як ризик. » *
Звичайні фрази
** В обзорах коду: **
- «Ця функція передає кошти до оновлення внутрішнього балансу — це замовлення є саме тим шаблоном, який дозволяє атаки повторного входу»
- «Ми не перевіряємо значення повернення цього зовнішнього виклику, тому невдалий переказ безмовно успішно пройшов з точки зору контракту»
- «Ця функція mint не обмежує загальну кількість постачання — ми повинні додати це обмеження до розгортання, оскільки контракти є ефективно незмінними після того, як вони живі»
В стоячих позах:
- “Вчора я закінчив оптимізацію газу на функції партійного карбування; сьогодні я готовий до аудиту безпеки.”
- «Я заблокований на торбинці з’єднання — новий провайдер торбинки SDK обробляє ланцюг перемикування по-іншому, ніж той, що ми тестували проти.»
- «Я виправив помилку, коли фронтенд відображав застарілі дані про власника, тому що він не слухав подію передачі на ланцюгу»
** У розмовах про продукт/зацікавлених осіб:**
- Якщо ціни на газ підвищуються під час перевантаження мережі, користувачі можуть відмовитися від мента потоку — чи повинні ми встановити максимальну ціну на газ і показати чітке попередження, а не дозволити йому безмовно провалитися?
- «Ця функція вимагає транзакції на ланцюзі, тому завжди буде невелика затримка для підтвердження блоку — ми повинні розробляти інтерфейс користувача навколо цього очікування, а не проти нього»
- «Вибір опікунського гаманця знижує тертя при вступі, але це також означає, що ми беремо на себе ризик і відповідальність, яких уникають неопікунські підходи»
Фрази, яких слід уникати
**Скажіть “це на блокчейні”, ніби це одне гарантує коректність або безпеку. ** Бути на ланцюжку означає, що дані є очевидними та перевіреними консенсусом - це не означає, що основна логіка без помилок або самі дані є точними. Замість цього скажіть: «запис є в ланцюжку і не може бути змінений після факту, але логіка контракту все ще потребує аудиту на коректність»
**Сказати « транзакція зазнала невдачі » без вказівки причини. ** Розрізняти між «трансакція скасована» (контракт явно відхилив її), «вона закінчилася газом», і «вона все ще очікує» (ще не підтверджена) — вони вимагають абсолютно різних виправлень і різних повідомлень для користувача.
Скажите “крипто кошелек”, когда точность в отношении хранения имеет значение. У дискусіях, що стосуються безпеки або коштів користувачів, визначте опікунство проти неопікунства явно, оскільки відповідальність і профіль ризику значно відрізняються між ними.
Краткий справочник
| Term | How to use it |
|---|---|
| minting | ”Minting failed due to insufficient gas, not a contract bug.” |
| gas fee | ”We batched operations into one transaction to reduce gas fees.” |
| custodial wallet | ”Our custodial wallet manages keys so users skip the seed phrase.” |
| smart contract | ”The smart contract auto-distributes resale royalties.” |
| on-chain / off-chain | ”Ownership is on-chain; the image file itself is stored off-chain.” |
| reentrancy | ”We added a reentrancy guard after the audit flagged the withdrawal function.” |
Ключеві моменти
- Розрізняйте точні торбинки з обслуговуванням від неоперативних торбинок — профіль ризику і відповідальності значно відрізняється між ними.
- Бути «на ланцюзі» гарантує докази підробки і перевірку консенсусу, а не коректність - ніколи не змішуйте ці два при обговоренні безпеки.
- Вкажіть точну причину невдачі транзакції (скасовано, закінчилося паливо, транзакція все ще очікує на виконання), а не просто вкажіть « невдала »
- Реентранці та подібні вразливості розумних контрактів заслуговують на точний, названий словник в перегляді коду - нечіткі попередження проходять повз.
- Затримка на ланцюжку кадрів (час підтвердження блоку) як обмеження дизайну UX, щоб планувати навколо, а не несподіваний провал, щоб обійти після факту.
Розрізняють: мовні стереотипи — стереотипи, що стосуються мовлення людей, які не говорять рідною мовою
Основний словник, який ми охоплюємо - розумні контракти, ERC-721, газові платежі, гаманці і так далі - є фундаментальним для будь-якого розробника Web3. Однак, для розробників, чия перша мова не є англійською, навігація нюансами технічного спілкування може бути значно складнішою, ніж просто розуміння визначення. Це не просто про те, щоб знати * що * є «газовий граничний»; це про те, щоб сформулювати цю концепцію чітко і впевнено в професійному середовищі, особливо при співпраці з міжнародними командами або документації складного коду. Поширена боротьба виникає з різниці у формулюваннях щодо оцінки ризику - концепції, такі як “потенційно вразливі”, можуть бути виражені по-різному в залежності від культурного контексту. Аналогічно, рівень деталей, очікуваних в документації, значно варіюється, що призводить до нерозуміння, якщо очікування не чітко вирівняні.
Однією з особливостей, де це проявляється, є перегляд коду. Отримавши такий коментар, як «Це може бути більш економічним» може відчуватися нечітким і потенційно обвинувачуючим для когось, хто вивчає англійську. Важливо перетворити це на щось дійсне. Замість простого прийняття зворотного зв’язку, розробник може відповісти: «Я розумію занепокоєння щодо ефективності газу. Чи можете ви розібратися, які конкретні області ви рекомендуєте оптимізувати? Можливо, ми могли б розглянути можливість використання пакетних операцій або зменшення розміру транзакції?» Це демонструє зацікавленість і бажання вчитися під час пояснення запиту. Крім того, проактивне висловлювання припущень — наприклад, «Я розглядав потенційні проблеми з масштабуванням з цією реалізацією» — може запобігти непорозумінням і сприяти довірі.
Інший поширений сценарій включає в себе Pull Requests (PRs). Написання чіткого опису PR є надзвичайно важливим. Хорошим прикладом буде: «Впроваджена логіка карбування NFT для «Небесної колекції», заснована на специфікаціях дизайну, описаних в [посилання на Figma]. Цей PR включає тести блоків, що охоплюють ключові функціональні можливості, зокрема успішне виготовлення монет і обробку помилок у разі недостатнього балансу торбинки. Я додав коментарі в коді, підкреслюючи області, де оптимізація газу є потенційною проблемою - вони позначені для подальшого перегляду командою. “Включення конкретних деталей, таких як “тестування пристроїв” і посилання на зовнішню документацію негайно забезпечує контекст для рецензентів, які можуть не бути близько знайомі з дорожньою картою проекту або виборами дизайну.
Нарешті, пам’ятайте, що точна мова має значення при обговоренні технічного боргу. Сказати щось на зразок «Це швидке вирішення» може передати відсутність зобов’язання до довгострокового підтримування. Замість цього, сформулюйте його так: «Це вирішує негайну проблему, але вимагає подальшого дослідження потенційних вузлів масштабованості і рефакторингу для поліпшення якості коду в наступних ітераціях»
# Example using ethers.js to estimate gas costs (simplified)
import { ethers } from 'ethers';
const contractAddress = '0xYourContractAddressHere';
const abi = '[Your Contract ABI Here]';
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID'); // Replace with your Infura project ID
async function estimateGas(functionName, ...args) {
const contract = new ethers.Contract(contractAddress, abi, provider);
const gasEstimate = await contract[functionName](...args).estimateGas({ from: '0xYourWalletAddressHere' }); // Replace with your wallet address
console.log(`Estimated Gas for ${functionName}: ${gasEstimate}`);
}
// Example call - replace with your actual function and arguments
estimateGas('mintNFT', 'tokenURI', 'uniqueTokenId');
Цей простий приклад демонструє практичне застосування, де точна термінологія є ключовою - розуміння і комунікація газових витрат, фундаментальна проблема в розвитку Web3. Сфокусуйтеся на ясному, детальному спілкуванні і активному пошуку пояснень, коли це потрібно; це безцінні навички для будь- якого розробника, незалежно від рівня володіння рідною мовою.