Направление расширения публичной сети Web3 DA (1-обзор, данксардинг, достоверность)
Направление расширения публичной сети Web3 DA (1-обзор, данксардинг, достоверность)

1 Основная концепция

Что такое доступность данных?

В чем заключается концепция DA (доступности данных)?

Как узлы в сети блокчейна гарантируют, что все данные для нового предложенного блока действительно доступны? Вы подтвердили, что данные транзакции были опубликованы?

То есть, где хранятся транзакции и статус, и можно ли их хранить постоянно, читать в режиме реального времени и проверять их подлинность.

Почему доступность данных важна?

Доступность данных + консенсус = «Безопасность» цепочки, Это незаменимая часть безопасности блокчейна.

(1) Чтобы обеспечить DA, конструкции OPRolup и ZKRollup требуют, чтобы операторы отправляли все детали транзакций в Ethereum как «данные вызова». Хотя это позволяет им избежать проблем с DA в краткосрочной перспективе, поскольку количество транзакций в объединении увеличивается, объем данных, которые необходимо зафиксировать, увеличивается, что ограничивает возможности масштабирования, которые могут обеспечить эти объединения.

(2) Предоставьте методы доступа для легких узлов и клиентов.

Почему DA и Rollup должны быть связаны вместе, чтобы создать повествование?

Вернуться к расширению Ethereum

  • Расширение внутри сети : (1)консенсусоптимизация → Новые публичные сети (Solana, Avalance) (2) Ускорение шардинга → Часть проекта шардинга (Near), дизайн Ethereum 2.0 (отложен)
  • Расширение вне сети - Layer2 : (1)State Channel, Plasma → Уже сдался, (2)Sidechain + Крест-цепной мост → Стабильно, больше никакого повествования (3) Сводка → центр повествования

Будущее развитие Ethereum занимает центральное место в повествовании → Суть объединения: завершает внесетевую миграцию упаковки, исполнения и расчетов транзакций. Доступность данныхDAВсе еще зависит от Ethereum,Ограничено Эфириумом。

https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum#original-data-sharding-design---separate-shard-proposers

Почему Ethereum должен выбрать накопительный пакет?

Доказано, что объединение является возможным направлением, которое может мгновенно решить проблему расширения, которая ранее требовала многих лет разработки и разделения. Выбор поддержки объединения позволяет большему количеству проектов связать Ethereum в качестве DA и уровня доверия, сохраняя Ethereum в публичной цепочке. доминирующее положение.

https://www.ethereum.cn/a-rollup-centric-ethereum-roadmap

В нескольких сообщениях в блоге Бутерина подчеркивается, что объединение — это направление развития Ethereum.

https://vitalik.ca/general/2021/12/06/endgame.html

краткое содержаниеРазвитие технологии Rollup должно решить проблему ограничения DA. Текущая цель расширения DA также состоит в том, чтобы лучше поддерживать развитие объединения.

(Есть еще одно узкое место в объединении, которое заключается в реализации децентрализованного секвенсора для достижения устойчивости к цензуре, но оно не имеет особого отношения к этой статье)

Три повествовательных направления расширения публичной сети DA

Что является узким местом расширения DA?

  • Ограничение размера блока: ограничение размера блока, данные хранения данных вызовов стоят дорого;
  • Ограничения проверки узла: верификатору необходимо загрузить все данные, чтобы проверить их достоверность;
  • Ограничения хранения: машины для хранения больших объемов данных стоят дорого;

(С точки зрения невозможного треугольника, Повышение доступности блокчейна данных, то есть улучшенная масштабируемость, Это неизбежно приведет к отсутствию безопасности или децентрализации)

Некоторые соответствующие технологии решения: Danksharding,DASДоступность данныхвыборка, стирающее кодирование , стороннее хранилище, Данные удаляются регулярно.

Каковы направления решения расширения DA?

  • Расширение DA Ethereum, Прото-данкшардинг (EIP-4844), Данкшардинг
  1. По сути, он предоставляет место для более дешевых блоков данных подключаемых модулей в блоке Ethereum для использования при объединении. Эти места можно удалить позже, что эквивалентно кэшу;
  2. Разделен на краткосрочный план Прото-данкшардинга (EIP-4844) и долгосрочный план Данкшардинга;
  3. Ключевые технологии включают в себя обязательства KZG, двухмерное стирающее кодирование, сборщики и верификаторы PBS разделены;
  • Решение DA для плана проекта Rollup
  1. По сути, это служба уровня DA, созданная в рамках существующего проекта объединения для снижения стоимости перехода на уровень L1;
  2. StartEx DAC/zkPorter/Arbitrum Nova;
  • Модульные блокчейны
  1. По сути, он абстрагирует функции модуля, представленные DA в публичной цепочке, на сторонние общедоступные компоненты, которые могут вызываться другими проектами в экосистеме.
  2. На какие модули можно разделить публичную цепь: консенсусслой(Consensus), Уровень исполнения, Расчетный слой (Расчет), Доступность данныхслой(Data Availablity)
  3. Автор модульной концепции: Celestia
  4. Другие модульные исследования Fuel, EigenLayer, Op Stack

Рассказ 1: Данкшардинг Эфириума

DankshardingИсследователь ЭфириумаDankrad FeistВ 2021 Это совершенно новый дизайн, предложенный в конце года и заменяющий первоначальный дизайн шардинга. Внедрение Данкшардинга занимает много времени, возможно, 3-5 лет. Поэтому сообществу Эфириума также необходимо некоторое краткосрочное планирование задач для постоянного продвижения к Данкшардингу.

25 февраля 2022 года Виталик, DankRad и другие предложили EIP-4844 (Shard Blob Сделки) предложение, https://eips.ethereum.org/EIPS/eip-4844 , Также называется Прото-Данкшардинг. (Это сочетание имен двух людей), Это краткосрочный план реализации Данкшардинга.

До краткосрочного решения есть более прямое предложение EIP-4488, которое корректирует и снижает стоимость газа для данных вызовов, чтобы обеспечить лучшую среду для объединения.

весьплан Основная концепция заключается вДобавьте блоки данных (блобы) в транзакции и блоки Ethereum, чтобы обеспечить недорогое и достаточное объединенное хранилище.

Краткосрочное решение Proto-Danksharding (EIP-4844)

(1) Введение Blob-carrying Transactionsформат транзакции。несет вызванныйblobблок данных(ок.125kB),Сделайте блок действительно больше,Это обеспечивает более дешевую версию Доступности данных, чем CALLDATA (приблизительно 10 КБ).

Расширение показано ниже.

Формат транзакции blob почти такой же, как и исходный формат транзакции, за исключением того, что здесь больше битов blob и некоторых полей, описывающих blob. К ключевым относятся: «KZG_Commitment, KZG _Proof, blob_gas» и так далее.

Текущий размер блока составляет около 100 КБ, из которых на долю calldata приходится 10 КБ, каждый BLOB-объект blob-tx — 125 КБ, и каждая транзакция может содержать до 2 BLOB-объектов, каждый блок в идеале содержит 8 BLOB-объектов, что составляет около 1 МБ, и содержит до; 16 больших двоичных объектов, что составляет около 2 МБ;

Сетевой разделСуществует только во время трансляции транзакции,version_hashто естьKZG Хэш-результат обязательства, Узлы должны обеспечить blob_version_Hash и KZG при голосовании за BlobTx. Приверженность постоянна, KZG Приверженность и капля Данные соответствуют, KZG Доказательство верное. Большие двоичные объекты не передаются напрямую, а запрашиваются у других узлов, когда узел проверки отсутствует.

После того, как проверки Commitment и Proof пройдены, их не нужно хранить в цепочке. Необходимо оспорить только поведение Op-type. Если вы хотите оспорить последующее действие, вы можете предоставить соответствующие ему данные и version_hash. .

Для каждой транзакции с blob передайте KZG committment,KZG Доказательство и проверка оригинальных данных могут гарантировать данные blob и KZG. Данные об обязательствах последовательны, Эта проверка осуществляется посредством предварительно скомпилированного контракта. Пункт evaluation precompileзавершенный。(Конструкция должна быть такой, чтобы верификатор завершал проверку перед тем, как каждая транзакция Blob будет помещена в цепочку.

(2) Разрешить узлам удалять данные больших двоичных объектов по истечении определенного периода времени.

Если исходить из расчета еще 8 больших двоичных объектов и 1 МБ на блок, каждый год будет добавляться 2,7 Т данных. Для валидаторов является большой проблемой хранить такой большой объем дополнительных данных.

Как уже говорилось выше, я взял с собой KZG из-за торговли. обязательства и KZG Proof,Даже если данные удалены,Впоследствии мы также можем использовать эти два значения для,Используйте исходные данные из цепочки для проверки,Гарантированные данные, подлежащие восстановлениючестностьиз。

  • Так кто же будет постоянно хранить эти данные DA? 1. свернуть сам, 2. BitTorrent, 3. Портал Эфириума Network, 4 блокчейн-браузер, 5, The Graph

(3) Как использовать накопительный пакет?

Ключевым моментом является проверка согласованности после помещения данных в большой двоичный объект. EIP-4844 использует метод фиксации KZG для сжатых транзакций в больших двоичных объектах. То есть при отправке данных в большой двоичный объект исходное изменение состояния должно быть {zkproof} и КЗГ Обязательство передается в calldata (в контракте Rollup), Затем Ethereum предоставляет предварительно скомпилированный контракт для завершения запроса согласованности между обязательствами KZG и большими двоичными объектами.

  • OP Как использовать накопительный пакет : Добавить блоб Verification Предварительная компиляция Контракт предварительной компиляции : Поскольку контракт OP не может читать большие двоичные объекты, когда возникает проблема и требуются данные транзакции, контракт объединения будет Данные большого двоичного объекта, отправленные претендентом в транзакции И KZG, соответствующий исходному блобу. обязательства и KZG Доказательство: дайте этот предварительно скомпилированный контракт, и предварительно скомпилированный контракт вернется. Идентичен ли Blob, предоставленный претендентом, оригинальному KZG Приверженность равная. Если они равны, это означает, что претендент предоставил данные, соответствующие отправке, логика запроса OP может воспроизвести транзакции, отправленные пользователем. Если окажется, что они не соответствуют текущему состоянию, запрос будет успешным.

  • ZK Как использовать накопительный пакет:НовыйPoint Evaluation PrecompileПредварительно скомпилированные контракты,Этот предварительно скомпилированный контракт упоминался выше.,Фактически он используется для проверки транзакций.изKZG Приверженность и согласованность Blob. ZK Объединение является доказательством действительности. Нет необходимости оспаривать или использовать данные больших двоичных объектов. После того, как транзакция входит в контракт ZK, ZK необходимо сначала проверить. Доказательство правильности, KZG Правильность Обязательства подтверждена, ЗатемЦель состоит в том, чтобы гарантировать, что ZK Proof и KZG Commitment указывают на одни и те же данные.。 Данная гарантия основана на ZK Proof, State Рут и др. и КЗГ. Commitmentмеждуиз Математические связи,proof of equivalence protocol Сгенерировать обязательство по доказательству эквивалентности и записать его в ZK Контракт объединения используется для завершения этого замкнутого цикла доказательства.

краткое содержание: Proto-Danksharding – это краткосрочный план Данкшардинга, С помощью механизма транзакций больших двоичных объектов

(1) Предоставляет пространство внутри цепочки, которое дешевле, чем плата за газ для вызовов данных, что снижает стоимость DA для Rollup. (2) Обеспечивает механизм очистки больших двоичных данных для уменьшения нагрузки на хранилище узлов проверки. (3) Предоставляет 2 предварительно скомпилированных контракта для обеспечения проверки согласованности сводных данных и доступа к данным больших двоичных объектов.

https://www.eip4844.com/ Веб-сайт, посвященный предоставлению информации о проекте 4844.

Долгосрочное решение Полный Данксардинг

  • (1) Blob хранится в Shard. : После внедрения Danksharking каждый блок будет иметь дополнительные 16 МБ, при этом максимально допустимый размер составит 32 МБ. Blob планируется вешать на блоки, а не на транзакции, как задумано EIP-4844, Это удобнее ВПодкомитет, который это сделаетblobиз Выборочный контроль。в то же время,Увеличенный объект больше не транслируется вместе.,СкорееТранспорт в режиме SideCar,То есть блоки и блобы принимают разные каналы.,Такие нерелевантные узлы должны проверять большой двоичный объект путем выборки., Только узлы, связанные с объединением, получат полный SideCar.

  • (2)Доступность данныхвыборка(DAS): Главным образом посредством математического проектирования, Пусть узел, проверяющий данные, выбирает только часть данных. После многократных проверок наличие полных данных можно доказать с высокой вероятностью. Таким образом, каждый узел проверки выполняет только выборку, а требования к производительности и хранению будут значительно снижены при сохранении децентрализованных характеристик. Ключевые особенности DAS заключаются в следующем:
    • стирающее кодирование(Erasure Coding)план,Принцип заключается в кодировании Рида-Соломона (RS).,Помогает узлам сети легче обнаруживать вероятность потери исходных данных при загрузке части данных.,Тем самым повышая безопасность.

  • Полиномиальное обязательство KZG: KZGобещатьизПреимущество заключается в том, что общее обязательство KZG может быть предоставлено для нескольких сегментов данных. Для каждого сегмента можно быстро и легко рассчитать доказательство принадлежности одного сегмента данных X ко всем данным.такизфункция идеально подходит для выборки одного фрагмента данныхизтест。(верно Внесколько сегментов,Например, случайный 75,KZGтакжеУмение строить одноразовые совокупные доказательства,Такая выборкаи Процесс проверкитакже Это легкийиз、Можно выполнить за одно взаимодействие)
    • Для полинома f(x) доказывающая сторона принимает на себя обязательства по полиному с помощью технологии криптографии эллиптических кривых. C(f): для любого значения этого многочлена y = f(z), доказывающий может вычислить "доказывать" π(f,z)
    • Валидатору обязательство известно. C(f), дайте доказательство π(f,z), переменная z, значение y Три части данных, которые верификатор может подтвердить f(z)= y, то есть (z, y) действительно принадлежит этой полиномиальной функции.

  • стирающее кодирование2D - расширение КЗГ: Это решает проблему, заключающуюся в том, что после разделения больших блоков данных узлам требуются высокие возможности при реорганизации блоков.
    • Большой блок данных разделен на 256 фрагментов. Каждый фрагмент мы делим на 256 фрагментов и используем RS-кодирование, чтобы разложить его на 512 фрагментов. Каждый фрагмент имеет номер 1, 2, 3,...,512.
    • Фрагменты с одинаковым количеством и разными фрагментами перегруппировываются в одну группу, в результате чего получается 512 групп, в каждой группе по 256 фрагментов, и каждая группа расширяется с 256 до 512 за счет RS. возьми один512изГруппа 2D-фрагментов
    • Как показано ниже, он разделен на 4 сетки. Только если все, что находится над сеткой в ​​правом нижнем углу, недоступно, общие данные невозможно восстановить.。 Следовательно, узел проверки должен гарантировать доступность более 75%+1 данных согласно приведенному выше стирающему. Метод расчета кодирования требует всего 75 выборок. (итак 0,75^75 Вероятность такая же, как 0,5^30. Почти единогласно). (Понимание этой вероятности: Доступность данных
    • 2D расширениеизТехнический эффект: (1) Узлу проверки необходимо выполнить выборку всего 75 раз, но размер выборки данных составляет 1/256 от размера одномерной сегментации. Требования к пропускной способности снижены. (2) Уменьшить сложность восстановления данных. Данные можно реорганизовать для одного фрагмента. Во время реорганизации параллельное сотрудничество может быть основано на двумерных строках и столбцах. Уменьшите требования к вычислительной мощности одного узла

При двумерной структуре RS, если используется 75% общего блока выборочных данных, исходные данные могут быть восстановлены (если меньше 25%, данные при этом точно не будут восстановлены). узел выбирается только 75 раз, чем больше узлов, тем выше безопасность; аналогично, чем больше узлов, тем больше может быть размер блока при одинаковой безопасности (конечно, требования к пропускной способности узла также будут увеличиваться)

(3)Proposer-Builder Separation (PBS) : Предложение и упаковка отдельно

Оригинальный узел Ethereum также играет роль упаковки и производства блоков.,Он не только создает содержимое блока, но также отвечает за проверку и голосование по блоку.

Новый план следующий: (1) Если полный узел хочет упаковать блоки, ему необходимо добавить конфигурации, переключиться на роль «упаковщика» и получить квалификацию упаковки посредством торгов. (Если упаковщики конкурируют за MEV, они передадут стоимость MEV упаковщика децентрализованным верификаторам. (2) Верификатор выбирает Предлагающего на основе ротации PoS, а затем выбирает Строителя на основе ставок. (3) Все валидаторы проверяют упакованный блок Строителя через DAS и начинают голосование за создание блоков.

Решение PBS с 2 слотами, предложенное Бутериным: Простое понимание состоит в том, что заголовок блока и заголовок блока проверяются отдельно, а торги и подтверждение завершаются, когда тело блока не раскрывается.

https://notes.ethereum.org/ @vbuterin/pbs_censorship_resistance

(4) Сопротивление цензуре Censorship resistance – crList : Чтобы помешать строителям намеренно не упаковывать определенные транзакции, Предлагающий может запросить блокировку Сборка должна упаковать транзакции в определенный список и предоставить доказательства.

Конкретный план реализации сопротивления цензуре еще не определен.

Объединение трех вышеуказанных технических направлений представляет собой общую форму Данкшардинга:

краткое содержание: Full Данкшардинг — это долгосрочная цель, в основном направленная на достижение трех целей: Помимо расширения DA, решите более общие проблемы безопасности:

(1) В текущем BLOB-объекте На основе транзакции продолжайте расширять возможности DA BLOB-объектов, проходитьДоступность данныхвыборка(DAS),Опустить валидаториз Стоимость проверкии Сохраните оригинал。 (2)Внедрить разделение производителя и упаковщика блоков (PBS), Решите проблемы передачи данных, вызванные большими блоками и возможными проблемами MEV. (3)Список сопротивления цензуре (Crlist),Избегайте цензуры транзакций, Можно рассматривать как дополнение к PBS.

ссылка:

https://notes.ethereum.org/ @hww/workshop_feb_2022 Бутерин и Данк поделились материалами встречи о ходе реализации проекта Данкшардинг

Другие вопросы:

КЗГ в стадии разработки Ceremony Что такое: Пусть все закончат это вместе доверие КЗГ процесс установки, многоучастник trust setup, Пока один человек не раскрывает, как они генерируются, весь процесс инициализации заслуживает доверия. Финал настройки secret Используется в качестве основного параметра полинома генератора KZG. Вход: https://ceremony.ethereum.org/

Повествование 2: Решение Rollups DA

Решение – Валидиум

Чтобы снизить затраты на отправку сжатых транзакций в Ethereum до того, как появился (или был предложен) Danksharding, было разрешено выбирать, отправлять ли транзакции в Ethereum.

Первоначально валидиум относится конкретно к zk. Rollup + План расширения DA вне сети, но благодаря удобству повествования многие проекты используют Validium. как"DA Provided by Rollup" решения для обсуждения, поэтому в этой статье для обозначения этого направления также используется слово Validium.

Самая простая реализация Validium заключается в том, что оператор Rollup сам гарантирует DA, и пользователи доверяют ему, чтобы он не творил зла. Таким образом, стоимость DA можно игнорировать, но безопасность не может быть гарантирована вообще, поэтому каждый проект Rollup предлагал свой. собственное решение DA.

Сводная информация о статусе проекта

Некоторые проекты L2, построенные на Validium

краткое содержание:

Решение Rollups DA — это решение DA, предложенное самим проектом Rollup с целью снижения затрат и расширения емкости. Оно также фактически решает некоторые собственные проблемы стоимости хранения данных Rollup. Однако масштабируемость ограничивается снижением затрат на хранение данных и не приводит к появлению других бизнес-моделей. Это не полностью модульное мышление. Это «микроинновация», и изменения недостаточно основательны.

Данными Validium управляет небольшой комитет, и их безопасность сомнительна, что побудило крупномасштабные проекты стать уровнем DA.

ссылка:

Данкшардинговая часть:

https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum The Hitchhiker's Guide to Ethereum - Важный дальний вид на Дельфи

https://dailyclipper.net/dc/2022/06/06/318944/ китайский перевод вышеизложенного

https://medium.com/taipei-ethereum-meetup/rollup-and-the-boost-from-proto-danksharding-85d2fe0566b6 В этой статье приводятся некоторые источники изображений Данкшардинга, но они не очень точны.

https://medium.com/taipei-ethereum-meetup/rollup-proto-danksharding-implementation-detail-913a3c61fde8 В этой статье приводятся некоторые источники изображений Данкшардинга, но они не очень точны.

https://notes.ethereum.org/ @hww/workshop_feb_2022 Бутерин и другие обсуждают материал данксардинга. Включая сам кусок сырости, большинство сетевых изображений взято из этого ppt.

https://zhuanlan.zhihu.com/p/610737860 Интерпретация дорожной карты Ethereum

https://cn.cointelegraph.com/news/understanding-the-merge-surge-verge-purge-and-splurge Слияние Ethereum завершилось успешно, пересмотрев дорожную карту Ethereum

https://learnblockchain.cn/article/4334 Узнайте о Danksharding, новом решении для обновления Ethereum, в одной статье. Относительно краткий и точный, это отсылка к книге Hitchhiker's Guide to Доработки и дополнения Ethereum

https://www.chaincatcher.com/article/2086654 Углубленная интерпретация EIP-4844:Sharding Маленький шаг для Ethereum, большой шаг для расширения Ethereum

https://km.woa.com/articles/show/567634 Краткое изложение Доннера о Данкшардинге

Математические принципы КЗГ:

https://www.defidaonews.com/article/6784542 Подробное объяснение KZG Как подать заявку zk-rollup и Эфириум DA план

часть DA накопительного пакета:

https://www.bitpush.news/articles/2990522 IOSG Weekly Brief |демонтировать Доступность dataLayer: забытый кирпичик LEGO в модульном будущем

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.