При проектировании информационной системы выявляются некоторые слои, которые отвечают за взаимодействие различных модулей системы. Соединение с базой данных является одной из важнейшей составляющей приложения. Всегда выделяется часть кода, модуль, отвечающающий за передачу запросов в БД и обработку полученных от неё ответов. В общем случае, определение Data Access Object описывает его как прослойку между БД и системой. DAO абстрагирует сущности системы и делает их отображение на БД, определяет общие методы использования соединения, его получение, закрытие и (или) возвращение в Connection Pool.
Вершиной иерархии DAO является абстрактный класс или интерфейс с описанием общих методов, которые будут использоваться при взаимодействии с базой данных. Как правило, это методы поиска, удаление по ключу, обновление и т.д.
public abstract class AbstractController < public abstract ListgetAll(); public abstract E getEntityById(K id); public abstract E update(E entity); public abstract boolean delete(K id); public abstract boolean create(E entity); >
Набор методов не является завершённым, он зависит от конкретной системы. Фиктивный тип K является ключом сущности, редкая таблица, описывающая сущность, не имеет первичного ключа. Так же, в данном классе будет логичным разместить метод закрытие экземпляра PrepareStatement.
XDAO — почему взорвет в 2022? | Как легко создать свое DAO (фонд, гильдию и др.) | DAO — тренд 2022
public void closePrepareStatement(PreparedStatement ps) < if (ps != null) < try < ps.close(); >catch (SQLException e) < e.printStackTrace(); >> >
Уровень класса
Реализация DAO на уровне класса подразумевает использование одного единственного коннекта для вызова более чем одного метода унаследованного DAO класса. В этом случае, в вершине иерархии DAO AbstractController, в качестве поля объявляется connection. Абстрактный класс будет выглядеть следующим образом.
public abstract class AbstractController < private Connection connection; private ConnectionPool connectionPool; public AbstractController() < connectionPool = ConnectionPool.getConnectionPool(); connection = connectionPool.getConnection(); >public abstract List getAll(); public abstract E update(E entity); public abstract E getEntityById(K id); public abstract boolean delete(K id); public abstract boolean create(E entity); // Возвращения экземпляра Connection в пул соединений public void returnConnectionInPool() < connectionPool.returnConnection(connection); >// Получение экземпляра PrepareStatement public PreparedStatement getPrepareStatement(String sql) < PreparedStatement ps = null; try < ps = connection.prepareStatement(sql); >catch (SQLException e) < e.printStackTrace(); >return ps; > // Закрытие PrepareStatement public void closePrepareStatement(PreparedStatement ps) < if (ps != null) < try < ps.close(); >catch (SQLException e) < e.printStackTrace(); >> > >
Стоит отметить, что в данном примере мы получаем экземпляр Connection из пула соединений, что соответственно стоит реализовать или воспользоваться уже готовыми решениями. Создаём методы по получению getPrepareStatement(String sql) и его закрытию closePrepareStatement(PreparedStatement ps) . Реализация конкретного DAO класса, при такой логике, никогда не должна закрывать в своих методах соединение с базой данных. Соединение закрывается в той части бизнес-логики, от куда был вызван метод. Пример конкретного DAO класса будет выглядеть следующим образом.
Поясняю за Dragon Age: Origins в 2020
Экземпляр Connection доступен методу getPrepareStatement(String sql), который в свою очередь доступен любому методу конкретного DAO класса. Стоит помнить, что следует закрывать экземпляр PrepareStatement сразу после его отработки в блоках finally, а возвращать соединение в пул returnConnectionInPool() в части логики системы, где был вызван метод.
Источник: habr.com
Особенности децентрализованных автономных организаций
Технология блокчейна открывает много возможностей для создания проектов, реализация которых невозможна в традиционном финансовом мире. В последние годы стало популярным создание DAO. Это децентрализованные автономные организации с закодированными в смарт-контракте правилами, которые регулируются ее членами. В статье рассказываем особенности работы DAO и разбираем их основные плюсы и минусы.
Инструменты DAO
Децентрализованные автономные организации отличаются от традиционных не только расположением на блокчейне. DAO — это форма коллективного ведения бизнеса, в котором права и обязанности участников программируются с помощью смарт-контрактов. Они же освобождают и от необходимости проведения бумажной или учетной работы. Для правильного функционирования DAO необходимо создание нескольких обязательных инструментов:
- Надежный смарт-контракт. Это программа, с помощью которой участники DAO смогут предлагать свои идеи, голосовать и управлять организацией.
- Набор правил. Они прописываются в смарт-контракте и могут быть изменены только с помощью голосования участниками DAO. В правилах указываются положения голосования, время его проведения, необходимое соотношение голосов для победы и распределение прибыли организации между участниками.
- Активы организации. Каждая DAO выпускает свои токены. С их помощью участники голосуют и влияют на развитие проекта. Все, кто хотят присоединиться к DAO, должны будут выкупать эти токены.
Для реализации любого проекта или внесения изменений в смарт-контракт необходимо устроить голосование. Оно проводится между всеми участниками DAO и проходит в несколько этапов:
- Предложение. Любой участник DAO может выдвинуть свою идею. Для этого он должен указать все необходимое для разработки продукта, а также нужное количество активов и обязанности участников.
- Голосование. На этом этапе участники организации изучают предложение, вносят необходимые изменения и проводят голосование. Некоторые идеи могут быть сильно изменены или отклонены вовсе.
- Реализация. Если большинство проголосовало за реализацию, то ответственные лица приступают к выполнению своих обязательств по смарт-контракту. Ими могут быть как сами участники DAO, так и сторонние организации, которые были указаны в предложении.
При создании платного продукта DAO взимает плату с ее пользователей, а доход поступает на ее счет. Дальше путем голосования решается, как организация будет распоряжаться прибылью.
Например, недавно состоялся первый в России хакатон в метавселенных от metaverse-агентства Maff. Одним из его спонсоров стал виртуальный мир Decentraland, который также управляется при помощи DAO. Чтобы принять решение о поддержке хакатона, организация также провела голосование. Для этого участник под ником 0x5E23…0958 разместил предложение на платформе Snapshot, которой пользуется Decentraland DAO.
На странице голосования была размещена информация о мероприятии и причина, по которой им выгодно поддержать хакатон. Также участник указал там планируемые финансовые затраты, результаты уже проведенной работы и прогноз итогов хакатона.
Рекомендуем материал
Для тех, кому интересно узнать об истории возникновения DAO. В статье эксперт Иван Подмаско рассказывает о технических особенностях и сложностях, которые возникают при создании децентрализованных автономных организаций.
Преимущества DAO
Благодаря блокчейну стало возможно создание нового формата организаций. Смарт контракты дают DAO множество преимуществ над традиционными организациями, о которых мы поговорим ниже.
Равенство голосов участников. Управление традиционными компаниями осуществляется руководителями, советом директоров или инвесторами. А управлением DAO занимаются все его участники, потому что находятся на одном уровне. С помощью токенов любой из них может голосовать за изменения в смарт-контракте.
Отсутствие менеджеров. Для работы традиционных организаций необходимо нанимать менеджеров, которые контролируют работу остальных сотрудников. А у DAO нет иерархии среди ее участников, поэтому такая необходимость отсутствует. Протокол смарт-контракта исключает посредников и бюрократические условности.
Отсутствие финансового отдела. Все финансовые транзакции DAO записываются в блокчейн. Поэтому не нужно нанимать сотрудников, которые будут проводить эти операции, следить за их реализацией и вести документацию.
Сниженные финансовые затраты. Раз нет необходимости в дополнительных сотрудниках и ведении документации, то нет и дополнительных расходов.
Равное распределение прибыли между участниками организации. Например, DAO может финансировать какой-то продукт или услугу и взимать плату за ее использование «посторонними» участниками рынка. При этом все заработанные активы будут поделены между участниками DAO или вложены в следующий проект, в зависимости от результатов голосования.
Прозрачность смарт-контракта. Все правила организации записываются в смарт-контракт, который встроен в блокчейн. Никто не может вносить изменения в протокол так, чтобы этого не заметили другие участники.
Прозрачное финансирование. Операции традиционных компаний скрыты от общества и доступны только их сотрудникам или регулирующим органам. В блокчейне все участники рынка могут увидеть финансирование, которые выделяет DAO на проекты и оценить результаты этих вложений. Отсутствует возможность вывести активы мошенническим путем через подмену документации, как бывает в традиционных организациях.
Разносторонние участники. В DAO могут вступать люди из различных стран, если их навыки и представление о будущем организации соответствует ее политике.
Стремление всех участников к финансовому успеху. DAO выпускают собственный токен, которым владеют все ее члены. Если организация развивается и успешно реализует свои проекты, то повышается и стоимость ее активов. Поэтому участники заинтересованы в развитии DAO и получении прибыли.
Возможность покупать дорогостоящие активы. DAO могут создаваться для сбора средств на реализацию проектов или покупки невзаимозаменяемых токенов. Некоторые монеты и NFT сильно растут в цене с каждым годом и становятся дорогими для обычных пользователей. А при помощи DAO можно купить долю от владения этим токеном. Например, так работает Jenny Metaverse DAO.
Ее участники которой голосуют за то, какой NFT купить, когда его продать и делят прибыль между собой.
Недостатки DAO
При таком количество преимуществ, у DAO есть и серьезные недостатки. Некоторые организации не смогли их учесть, что привело к серьезным последствиям. Ниже мы поговорим об этих недостатках.
Уязвимость в коде смарт-контракта. Если при его создании были допущены ошибки, то на их исправление придется потратить много времени. После обнаружения уязвимости необходимо предложить способ ее устранения сообществу, объявить о голосовании и провести его. Только когда участники поддержат изменения, можно будет устранить ошибку в коде смарт-контракта. Если уязвимость заметят мошенники, они успеют ей воспользоваться еще до окончания голосования.
Первый DAO проект The DAO потерял большую часть активов именно из-за ошибки в своем коде. Тогда мошенники меньше чем через месяц вывели из организации около $50 млн. Участники смогли устранить уязвимость только после голосования и потери этих денег.
Неопределенный правовой статус. DAO не является юридическим лицом и правовой статус его токенов неизвестен. Не ясно, законодательством какой страны будет регулироваться деятельность организации, ведь она может действовать независимо от какой-то конкретной страны. В случае мошенничества неизвестно, как и кого необходимо привлекать к ответственности.
Но в одном из штатов США есть возможность официально зарегистрировать DAO. В марте 2021 года законодатели штата Вайоминг проголосовали за принятие такого законопроекта. А American CryptoFed стала первой официальной DAO в США.
Необходимость вовлеченности большинства участников DAO. Могут быть случаи, когда в голосовании участвует лишь небольшое количество людей. Некоторые участники организации инвестируют в ее токены, но при этом не стремятся ее развивать. Они не предлагают свои идеи и не участвуют в голосованиях, а для небольших DAO это может создавать проблемы.
Большое количество голосов на одного участника. Чтобы стать частью DAO, нужно купить ее токены. Они дают всем участникам равные права на управление организацией. Один токен равен одному голосу. Но некоторые участники могут покупать большое количество активов компании.
Это дает им преимущества при голосовании и влияет на принятие решений. Из-за этого организация перестает быть децентрализованной. Точно также большое количество активов может быть сосредоточено у акционеров в традиционных организациях.
Например, в DAO DeFi Education Fund несколько крупных держателей токенов проголосовали во вред сообществу. Ее создала компания Uniswap Labs для поддержки студенческой организации Harvard Law Blockchain в мае 2021 года. Она перевела на счет DAO 1 млн токенов UNI, которые по договоренности должны были постепенно выходить на рынок в течении четырех-пяти лет.
Но этим планам помешали участники DAO, которые предложили сразу продать половину UNI и провели голосование. Идею поддержали несколько крупных держателей токенов, что дало им сильный перевес. В итоге курс UNI быстро упал после объявления о продаже. Такое решение вызвало обеспокоенность крипто-сообщества насчет целей создания фонда и уменьшило доверие к подобным организациям.
Заключение
DAO — это децентрализованные автономные организации с закодированными в смарт-контракте правилами, которые регулируются ее членами. Для этого они предлагают свои идеи и проводят голосование. По его итогам вносятся изменения в смарт-контракт и реализуются проекты.
При управлении DAO есть ряд преимуществ, к которым относятся:
- Равенство голосов участников,
- Отсутствие менеджеров,
- Отсутствие финансового отдела,
- Отсутствие финансового отдела,
- Равное распределение прибыли между участниками,
- Прозрачность смарт-контракта,
- Прозрачное финансирование,
- Разносторонние участники,
- Стремление всех участников к финансовому успеху DAO,
- Возможность покупать дорогостоящие активы.
Но в создании DAO есть и недостатки, которые могут помешать управлению организацией:
- Уязвимость в коде смарт-контракта,
- Неопределенный правовой статус,
- Необходимость вовлеченности большинства участников DAO,
- Большое количество голосов на одного участника организации.
Источник: maff.io
Как технология DAO позволяет привлекать деньги, управлять компаниями или государством
После создания блокчейна в мире стали появляться организации на базе этой технологии, где решения принимает не совет директоров, а пользователи проекта. Эти компании называются DAO — децентрализованные автономные организации. Капитализация всех DAO уже достигла $10 млрд, а токены восьми таких проектов вошли в сотню крупнейших криптовалют. Креативный продюсер блокчейн-проектов Егор Лапшов в колонке для Forbes рассказывает, кто создает DAO, для чего они нужны и почему эта технология до сих пор остается спорной с точки зрения закона
Пропуск за токен
Среди сторонников криптовалют и блокчейна все более популярными становятся DAO — децентрализованные автономные организации. По сути DAO — это некое онлайн-сообщество, клуб или организация, ключом попадания в который является токен. Это похоже на замену секретного рукопожатия, рассказывал автор Wired Гилад Эдельман, который создал собственное DAO — lmaoDAO, посвященное придумыванию смешных подписей к карикатурам журнала The New Yorker (как и Wired, входит в издательский дом Condé Nast).
Многие DAO представляют собой просто группу в мессенджере Discord, для попадания в которую пользователю нужен определенный токен. Другими словами, участником DAO может стать лишь тот пользователь, у которого есть криптокошелек. Эдельман также называет DAO основанным на блокчейне краудфандингом, где вместо фиатных валют используются криптовалюты — те самые токены, которые нужно приобрести, чтобы стать частью определенного сообщества.
Самый известный пример функционирования технологии — проект The DAO, который запустил в 2016 году немецкий стартап Slock.it в качестве новой модели корпоративного финансирования и управления. Он был создан как смарт-контракт на блокчейне Ethereum, которому к тому моменту был всего год. The DAO собрал более $160 млн (12,7 млн ETH) примерно от 20 000 человек. Инвесторы проекта собирались коллективно проголосовать токенами DAO (их давали в обмен на ETH), куда потратить деньги. Предполагалось, что их вложат в новые стартапы, идеи которых мог бы предложить любой человек: если бы стартапы стали успешными, инвесторы The DAO получили бы в них свою долю, в случае провала деньги бы просто «списали».
Несмотря на это, эксперимент все-таки не удался — из-за уязвимости в смарт-контракте хакеры украли 3,6 млн ETH, а создателям пришлось «откатывать» Ethereum до момента, когда The DAO еще не существовало. До сих пор существует Ethereum classic — версия валюты, которую развивают те, кто в 2016 не согласился с откатом блокчейна в прошлое. Капитализация ETH classic — $5,4 млрд против $388 млрд у ETH.
Источник: www.forbes.ru