#rust
Прикольная фича - визуализация процесса билда, надо добавить
Прикольная фича - визуализация процесса билда, надо добавить
--timings к cargo build начиная с 1.60. Результат в виде красивой html странички, на скриншоте.Немного отвлекаясь от основных тем канала - после презентации эпла реддит уже собрал инструкцию по запуску игр на маках с помощью game-porting-toolkit
Gist
game-porting-toolkit.md
GitHub Gist: instantly share code, notes, and snippets.
🔥1
Пост-контент
#eth #substrate #консенсус Изучал тут консенсусы в блокчейнах, начитался доков eth про PoS и прочие GHOST, дай думаю посмотрю имплементации. Открытием стало, что после the Merge эфировский клиент это теперь две части, которые чуть ли не отдельно запускаются…
#eth
Клиент из двух частей - слой консенсуса (beacon chain) и слой исполнения (на базе EIP-3675). И они как-то взаимодействует друг с другом.
Алсо на очереди с моей стороны посмотреть реализацию https://github.com/sigp/lighthouse
Клиент из двух частей - слой консенсуса (beacon chain) и слой исполнения (на базе EIP-3675). И они как-то взаимодействует друг с другом.
Алсо на очереди с моей стороны посмотреть реализацию https://github.com/sigp/lighthouse
GitHub
consensus-specs/specs/bellatrix at dev · ethereum/consensus-specs
Ethereum Proof-of-Stake Consensus Specifications. Contribute to ethereum/consensus-specs development by creating an account on GitHub.
Полька обновится до 0.9.42 через неделю. Самое важное - там будет XCM v3, который будет работать (внимание-внимание) также, как и v2. Nuff said
Мое обновление до 0.9.42 практически готово, жду тестнет
Мое обновление до 0.9.42 практически готово, жду тестнет
Forwarded from Polkadot bot by Ryabina validator
Event: #PolkadotAlert
⚡️ Important system alerts from the Parity team
Module: #Ecosystem
Parameters:
⚡️ Important system alerts from the Parity team
Module: #Ecosystem
Parameters:
message: A proposal for a runtime upgrade is now up for vote by the Polkadot community and if passed it will be executed in block number #15,978,362 as runtime version 9420. Join the Polkadot Direction channel to follow the discussion.#substrate
Немного о совместимости XCM v2 и XCM v3.
Глобально они совместимы, один тип легко конвертнуть в другой, правда только через
Главное отличие от v2 - больше нет поля
Самое дурацкое, что это популярная и часто используемая всеми парачейнами конструкция, обычно вызывается в самом конце, чтобы задепозитить пересылаемые токены и вернуть остаток от фии.
Чувствуетсязапах говна, что пэрити не особо следит за xcm, которые парачейны реально отправляют друг другу, зато блять добавляют какие-то новые инструкции, ломая старые.
Я сейчас очень постарался написать все доступно и подробно, но на самом деле я в бешенстве
Немного о совместимости XCM v2 и XCM v3.
Глобально они совместимы, один тип легко конвертнуть в другой, правда только через
try_into. Т.е. в теории что-то может и не конвертнуться. Правда когда смотришь на конвертации XCM, MultiAsset, MultiLocation из одной версии в другую все конвертируется без проблем, оборачиваясь в Ok в конце. Что же могло пойти не так? А вот что - инструкция v3::XCM::DepositAsset {assets: Wild::all(), ..}.Главное отличие от v2 - больше нет поля
max_assets. Значится, чтобы из v3 получить v2 надо посчитать количество ассетов и в это поле подставить, что тут и делается. Подозрительно, что count() может оказаться None. И так сука и есть, в случае если assets это Wild::all().Самое дурацкое, что это популярная и часто используемая всеми парачейнами конструкция, обычно вызывается в самом конце, чтобы задепозитить пересылаемые токены и вернуть остаток от фии.
Wild::all() сделана для удобства, чтобы не перечеслять все токены, лежащие в буфере.Чувствуется
Я сейчас очень постарался написать все доступно и подробно, но на самом деле я в бешенстве
GitHub
polkadot/xcm/src/v2/mod.rs at dbae30efe080a1d41fe54ef4da8af47614c9ca93 · paritytech/polkadot
Polkadot Node Implementation. Contribute to paritytech/polkadot development by creating an account on GitHub.
Пост-контент
#substrate Немного о совместимости XCM v2 и XCM v3. Глобально они совместимы, один тип легко конвертнуть в другой, правда только через try_into. Т.е. в теории что-то может и не конвертнуться. Правда когда смотришь на конвертации XCM, MultiAsset, MultiLocation…
#substrate
Оказывается достаточно было вместо all использовать allCounted(number)
Но все равно они пидарасы
Оказывается достаточно было вместо all использовать allCounted(number)
Но все равно они пидарасы
#substrate
Первый драфт переделки collator protocol. Суть в рейтинге нод - чем выше рейтинг, тем надежнее, тем больше вероятность, что блок заапрувится на релейчейне
Первый драфт переделки collator protocol. Суть в рейтинге нод - чем выше рейтинг, тем надежнее, тем больше вероятность, что блок заапрувится на релейчейне
GitHub
Collator Protocol Revamp Draft · Issue #7353 · paritytech/polkadot
Board (to be filled): https://github.com/orgs/paritytech/projects/68 Current Status The collator protocol as implemented has not aged very well. Code quality is modest, missing structure, separatio...
#substrate
trait Currency используется в сабстрате для доступа к операциям с балансом. В 99% случаев он реализован в паллете балансов, а сам трейт вписывается в конфиг паллета, где нужны балансы, например в вестингах (тут LockableCurrency, который на самом деле расширение над обычным Currency).
И используется он много где - в стейкинге, в демократии, в вестингах, и это только дефолтные паллеты из frame, еще ведь есть самописные у парачейнов.
Проблема этого трейта - он умеет работать только с одним ассетом, который "привязан" к балансам, как правило это нативный токен сети. Есть альтернатива - Fungibles, только это не один трейт, а сразу пачка, реализованы они как правило в паллете ассетов.
Д-р Гевин Вуд недавно возмутился использованию негибкого Currency в одном из frame паллетов, и решил нахер депрекейтнуть этот трейт, призвав везде перейти на fungibles в отдельном ишью с трекингом перехода.
Больше обновлений ради обновлений!
trait Currency используется в сабстрате для доступа к операциям с балансом. В 99% случаев он реализован в паллете балансов, а сам трейт вписывается в конфиг паллета, где нужны балансы, например в вестингах (тут LockableCurrency, который на самом деле расширение над обычным Currency).
И используется он много где - в стейкинге, в демократии, в вестингах, и это только дефолтные паллеты из frame, еще ведь есть самописные у парачейнов.
Проблема этого трейта - он умеет работать только с одним ассетом, который "привязан" к балансам, как правило это нативный токен сети. Есть альтернатива - Fungibles, только это не один трейт, а сразу пачка, реализованы они как правило в паллете ассетов.
Д-р Гевин Вуд недавно возмутился использованию негибкого Currency в одном из frame паллетов, и решил нахер депрекейтнуть этот трейт, призвав везде перейти на fungibles в отдельном ишью с трекингом перехода.
Больше обновлений ради обновлений!
GitHub
substrate/frame/support/src/traits/tokens/currency.rs at 075ba84345c58611beaf8b3effcd321db5a92f6b · paritytech/substrate
Substrate: The platform for blockchain innovators. Contribute to paritytech/substrate development by creating an account on GitHub.
Пост-контент
#eth Клиент из двух частей - слой консенсуса (beacon chain) и слой исполнения (на базе EIP-3675). И они как-то взаимодействует друг с другом. Алсо на очереди с моей стороны посмотреть реализацию https://github.com/sigp/lighthouse
#eth
Lighthouse: slahing protection.
Валидатор может заслешиться в случае если он подпишет блок или attestation (инфа о последнем блоке включенном блоке и первом блоке текущей эпохи), которые не подтвердят другие валидаторы. Лайтхаус предлагает встроенную защиту от слэшинга - sqlite база, в которую пишутся подписанные блоки и аттестации от других валидаторов, что позволяет сравнивать текущее сообщение с сообщениями в базе и не подписывать его, если оно не совпадает.
Очень странно, получается лайтхаус-валидаторы не инициируют свое видение первыми?
Lighthouse: slahing protection.
Валидатор может заслешиться в случае если он подпишет блок или attestation (инфа о последнем блоке включенном блоке и первом блоке текущей эпохи), которые не подтвердят другие валидаторы. Лайтхаус предлагает встроенную защиту от слэшинга - sqlite база, в которую пишутся подписанные блоки и аттестации от других валидаторов, что позволяет сравнивать текущее сообщение с сообщениями в базе и не подписывать его, если оно не совпадает.
Очень странно, получается лайтхаус-валидаторы не инициируют свое видение первыми?
#stellar
В Soroban нельзя хранить u8/u16 внутри структуры в сторадже. Причем походу просто потому что. Вот эти типы можно.
Дефолтное значение Val (раньше RawVal) в SDK это u64, возможно это размер слова в их wasm
В Soroban нельзя хранить u8/u16 внутри структуры в сторадже. Причем походу просто потому что. Вот эти типы можно.
Дефолтное значение Val (раньше RawVal) в SDK это u64, возможно это размер слова в их wasm
Пост-контент
#eth Клиент из двух частей - слой консенсуса (beacon chain) и слой исполнения (на базе EIP-3675). И они как-то взаимодействует друг с другом. Алсо на очереди с моей стороны посмотреть реализацию https://github.com/sigp/lighthouse
Первое, что делает лайтхаус на запуске beacon node - конфигурирует аллокатор.
/// The optimal mmap threshold for Lighthouse seems to be around 128KB.Из документации mallopt:
///
/// By default GNU malloc will start with a threshold of 128KB and adjust it upwards, but we've
/// found that the upwards adjustments tend to result in heap fragmentation. Explicitly setting the
/// threshold to 128KB disables the dynamic adjustments and encourages `mmap` usage, which keeps the
/// heap size under control.
Nowadays, glibc uses a dynamic mmap threshold byВыключают динамическое изменение размера выделяемого в хипе блока, чтобы избежать фрагментации
default. The initial value of the threshold is 128*1024,
but when blocks larger than the current threshold and less
than or equal to DEFAULT_MMAP_THRESHOLD_MAX are freed, the
threshold is adjusted upward to the size of the freed
block. When dynamic mmap thresholding is in effect, the
threshold for trimming the heap is also dynamically
adjusted to be twice the dynamic mmap threshold. Dynamic
adjustment of the mmap threshold is disabled if any of the
M_TRIM_THRESHOLD, M_TOP_PAD, M_MMAP_THRESHOLD, or
M_MMAP_MAX parameters is set.
GitHub
lighthouse/lighthouse/src/main.rs at stable · sigp/lighthouse
Ethereum consensus client in Rust. Contribute to sigp/lighthouse development by creating an account on GitHub.
Жил себе, поживал, и не знал, что SUT это System Under Test и включает в себя все тестируемые элементы. Век живи, век учись гугли новые термины
#stellar
Выяснил опытным путем, что тесты в соробане считают ресурсы на весь прогон теста, а не за один вызов контракта, поэтому если в тесте есть цикл или делается много вызовов, то тест упадет с ошибкой
Но есть метод
Выяснил опытным путем, что тесты в соробане считают ресурсы на весь прогон теста, а не за один вызов контракта, поэтому если в тесте есть цикл или делается много вызовов, то тест упадет с ошибкой
TrapCpuLimitExceeded.Но есть метод
env.budget().reset_default() чтобы избежать падения.Discord
Discord - A New Way to Chat with Friends & Communities
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
#substrate
Polkadot 2.0
https://www.youtube.com/watch?v=GWPZDB-WsnE
1) Вместо слотов на 24 месяца - рента на 4 недели
2) Снова обещают паратреды, не называя их паратредами (паратреды в польке не работают сейчас)
3) Accords - "контракты" доступные для всех парачейнов
Polkadot 2.0
https://www.youtube.com/watch?v=GWPZDB-WsnE
1) Вместо слотов на 24 месяца - рента на 4 недели
2) Снова обещают паратреды, не называя их паратредами (паратреды в польке не работают сейчас)
3) Accords - "контракты" доступные для всех парачейнов
YouTube
Polkadot 2.0
Polkadot 2.0 is starting to take shape. Gavin Wood presented his perspective on what we need to do to make it happen at Polkadot Decoded 2023: Core Rental and Accords are the biggest changes that are upcoming.
Share the Tweet: https://twitter.com/alice_…
Share the Tweet: https://twitter.com/alice_…
Когда-то делал ораклы - нужна была возможность брать цены от разных источников и хранить медиану от них. Оракл по сути делал запросы, парсил ответы и записывал в чейн. Одна из бирж (возможно, кракен) отдавала символ битка как XBT, и я для них сделал просто отдельный if.
А оказывается, есть стандарт ISO-4217, и по нему токен не принадлежащий стране должен начинаться с
А оказывается, есть стандарт ISO-4217, и по нему токен не принадлежащий стране должен начинаться с
X.SIX
Global Financial Data Standards | SIX
Discover how SIX leads global financial data standards by driving initiatives, executing mandates and providing standardized financial information.
#stellar #soroban
Ох уж эти ваши no_std окружения и васмы. Ни тебе print, ни нормальных структур данных.
В соробане реализовали свой вектор - технологичный, классный, чтоб любая операция за logn. А для его конструирования нужно передавать
Ох уж эти ваши no_std окружения и васмы. Ни тебе print, ни нормальных структур данных.
В соробане реализовали свой вектор - технологичный, классный, чтоб любая операция за logn. А для его конструирования нужно передавать
env первым элементом, да. И вот в этом векторе есть встроенный binary_search, но нет сортировки🤷♂️Forwarded from Стой под стрелой (Nikita Prokopov)
Любой программист должен уметь менять обходить дерево, поднимать докер, мержить ветки, настраивать принтер, верстать с хуками, верстать без хуков, обучать модель, обновлять драйвера, дебажить сегфолт, линковать статически, линковать динамически, обновлять статус задач в джире, спрашивать почему, объяснять, почему за вчера ничего не сделал, настраивать CI, катить релизы, комментировать упавшие тесты, оценивать сложность задачи, открывать транзакцию, закрывать транзакцию, пинговать ya.ru, продлевать SSL-сертификат, включать VPN, искать лишнюю запятую в JSON-е, ждать компиляции, чинить звук в Линуксе, обновлять OAuth токены, удалять куки, проходить дизайн-интервью, иметь мягкие навыки, иметь жесткие навыки, дропать базу.
Специализация — удел насекомых.
Специализация — удел насекомых.