Анінс!!! :: hinto-janai повна зайнятість над Cuprate | (3 місяці)
hinto-janai повна зайнятість над Cuprate (3 місяці)
Що
Cuprate — це альтернативна реалізація вузла Monero, над якою зараз працюємо я та Boog900 .
Наступний великий розділ, який потребує доопрацювання, це сервер RPC. Інший учасник, yamabiiko , також зацікавлений у роботі над сервером RPC, хоча наразі вони мають обмежений час, тому я поки що почну з цього окремо (за великої допомоги від Boog900).
ВООЗ
Я гінто-джанай .
Попередні CCS: https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/422.
сервер RPC
yamabiiko розпочав обговорення дизайну сервера RPC тут , а Boog900 запропонував деякі зміни.
Час першого етапу буде витрачено на:
- Конкретизація поточної пропозиції або потенційний пошук кращих альтернатив
- Підготовка початкового проектного документа, подібного до
database/
Поточний дизайн бази даних було розподілено на кілька місяців, хоча дизайн сервера RPC мав би займати набагато менше часу.
Після встановлення дизайну друга/третя віха розпочнеться в бібліотеці інтерфейсу RPC – терміни для цього – до кінця цього CCS. Це включає тестування, документацію тощо. Поточний план полягає в тому, щоб відокремити інтерфейс від внутрішнього обробника RPC. Після завершення інтерфейсу внутрішній обробник(и) буде завершено в іншому CCS (потенційно розділеному між учасниками).
До кінця цього CCS початковий проектний документ буде відшліфовано, щоб відобразити реалізацію, подібно до цього , а документація користувача також буде завершена (знову, як database/
).
Отриманий проектний документ буде додано до книги архітектури Cuprate (див. нижче).
Інша робота
Є також інша робота, яку, на мою думку, було б корисно розпочати раніше, ніж пізніше.
Вони будуть розпочаті під час цього CCS:
- Книга про архітектуру Купрата
- Постійний пул транзакцій
monero-core
RPC PRs- Пакет бенчмаркінгу
- Проектні ворсинки
Постійний пул транзакцій буде завершено в рамках цього CCS, решта буде зростати разом із проектом.
Книга про архітектуру Купрата
Ця книга схожа на книгу протоколів Cuprate , хоча вона призначена для реалізації Cuprate. Проект RPC буде задокументований у цій книзі (разом із усіма іншими компонентами) у міру їх реалізації. Поточний документ бази даних також буде перенесено до книги.
Поточний приблизний проект: https://hinto-janai.github.io/cuprate-architecture
Очікувані включені елементи:
- Реляційна карта компонентів (RPC, DB, завантажувач блоків, верифікатор тощо)
- Компонентні конструкції
- Модель потоку (коли/де/скільки потоків створюється? з якою метою?)
- Модель ресурсів (файли, сокети, використання пам'яті)
- Інструменти (реєстрація, методи збору даних)
- Відомі неефективності/компроміси, їх обґрунтування
Постійний пул транзакцій
Враховуючи, що реалізація RPC займе деякий час, бажано реалізувати постійний пул транзакцій раніше, ніж пізніше; Інший варіант, який має Cuprate, — це створити пул транзакцій лише в пам’яті, хоча це було б лише тимчасовим проміжком і потребувало б більше роботи в довгостроковій перспективі, тому цю роботу буде виконано зараз.
monero-core
RPC PRs
Оскільки я переглядаю всі monerod
методи/об’єкти RPC і getmonero.org
документацію, я відкрию PR monero-core
або створю проблему, якщо помічу будь-які невідповідності.
Пакет бенчмаркінгу
Створення пакету порівняльного аналізу для компонентів Cuprate дозволить збирати та зберігати інформацію про час виконання коду. Ці дані можна використовувати пізніше для виявлення регресії продуктивності, а також для оптимізації вимірювання.
Створення індивідуального інструменту порівняльного аналізу було б окремим проектом, тому Cuprate планує використовувати проект Criterion .
Проектні ворсинки
Лінти призводять до того, що попередження компілятора стають серйозними помилками, блокуючи компіляцію. Приклад: serai-dex
.
CI Cuprate вже не відповідає попередженням (серед інших педантичних речей), хоча є багато додаткових дрібниць, які ми могли б додати. Вибір лінтів, які мають сенс для Cuprate, встановлює вищі стандарти коду для проекту. Налаштування цього та виправлення поточного коду не потребує надто багато зусиль, але з часом це затягнеться.
Фінансування
Я прошу ставку, ближчу до ринкової, прочитайте тут .
Я прошу $65 + 0,05 XMR на годину протягом 480 годин за $130/XMR. Це дає 264 XMR.
Останні дії показали, що monerod
він погано справляється з навантаженням. Крім того, документації на системному рівні мало; зміни, необхідні для вирішення подібних проблем, є складнішими, ніж необхідні. Я не вірю, що це має повторюватися.
Я вважаю, що це справедлива ставка для створення добре задокументованої та зручної для обслуговування інфраструктури. Я також прошу менше годин, ніж раніше, оскільки я не вірю, що зможу довго продовжувати працювати в поточному темпі.
Коментарі
Дописати коментар