Компьютерное мышление
Vienna Gödel Lecture 2016 with Jeannette Wing, Corporate Vice President, Microsoft Research (talk starts at 11:55)
Welcome to my personal place for love, peace and happiness 🤖
Vienna Gödel Lecture 2016 with Jeannette Wing, Corporate Vice President, Microsoft Research (talk starts at 11:55)
В Крыму подготовят инновационную выставку в формате NFT.
6 июня текущего года исполняется 225 лет со дня рождения великого русского поэта Александра Пушкина. К юбилейной дате арт-кластер «Таврида» подготовит, кроме различных мероприятий, еще и специальную инновационную выставку в формате NFT. Участвуют в ее разработке специалисты Центра развития культурных инициатив и Росмолодежь, «Известия».
Сегодня напишу как хранить данные в сети Greenfield и сделать смарт контракт на NFT и неординарный способ проверить это все.
Про сеть Greenfield я узнал в прошлом году как только она напустилась. и тут же попробовал. Любопытная штука так как предоставляет возможность работать без почтового акаунта, а напрямую из кошелька в Metamask.
Немного теории тут. Сеть Greenfield – децентрализованная сеть хранения контента. Почти как s3, но в блокчейне. Технически он она может быть полезна в новых механиках взаимодействия. Например, срок хранения NFT зависит от его просмотра, чем большое смотрят контент, тем дольше оно хранится или например можно взымать плату в блокчене и автоматически выдавать дотупы тем кто оплатил. Удобно, то что это наверное можно запрограммировать в смарт контракте, но я пока не знаю как именно. Тут можно посмотреть код. Есть некоторые сомнения конечно, что все такие это такой же s3 но поверх него некая нашлепка в блокчейне с хранением метаданных и хочется чего то более солидного, какой то магии без центрального звена, но может это просто мечты. Кстати, изначально она меня привлекала запуском ноды, но недавно узнал, что надо 500 bnb застейкать, а это где-то 300к по текущему курсу. В общем, до тех пор пока я нищеброд, надо забыть о ноде и идти на завод.
Вот что пишет о сети чатгпт:
Binance Smart Chain (BSC) — это лишь одна из инициатив Binance в области блокчейн-технологий. Однако также была анонсирована сеть под названием Greenfield, которая является частью более широкой экосистемы Binance. Здесь я опишу, что такое Greenfield и для чего данная сеть может быть применима.
Greenfield — это децентрализованная вычислительная сеть, созданная и управляемая Binance, которая ориентирована на предоставление высокопроизводительных, масштабируемых и безопасных решений для различных децентрализованных приложений (dApps) и финансовых технологий.
Сеть Greenfield от Binance представляет собой мощную и многообещающую платформу для развития децентрализованных приложений и финансовых технологий. Её широкие возможности и особенности делают её подходящей для множества применений, от финансовых технологий до Интернета вещей и игровой индустрии.
Для работы с сетью я почему то сразу выбрал утилиту командной строки. Ее можно собрать из коду тут. Настроить ее было не очень очевидным, фактически ей нужно скормить ключ от кошелька, произвести пару настроек и закинуть в мост некоторое количество bnb на баланс, так как оплата в сети производится токенами bnb. Мне кстати это не очень нравится, но видимо другого пути нету пока.
Кстати есть еще хранилка в блокчейне storj, но сейчас рассказ не про нее, да и там нет такого многообразия управления контентом и. доступом как в Greenfield. Фактически там просто хранения и регистрация по почтовому ящику, но оплатить место можно токенами storj. Вот ее ноду я как раз и запустил, благо она не Токая требовательная к стейкингу.
Настраиваем cli Greenfield:
Тут есть подробная инструкция.
Либо можно так:
git clone https://github.com/bnb-chain/greenfield-cmd.git
cd greenfield-cmd
# Find the latest release here: https://github.com/bnb-chain/greenfield-cmd/releases
git checkout -b branch-name v1.0.2
make build
cd build
./gnfd-cmd -hПотом так:
// import key and generate a keystore file
gnfd-cmd account import key.txtГенерируем аккаунт:
// new account and generate keystore key.json
gnfd-cmd account account newПосмотреть аккаунт можно так:
// list the account info and keystore path
gnfd-cmd account ls
// display the encrypted keystore or the private key
gnfd-cmd account export --unarmoredHex --unsafeНу вы далее знаете, что делать. все сохраняем, храним надежно и т.д.
Приступаем к работе и создаем бакет:
gnfd-cmd bucket create gnfd://testbucketв моем случае я сделал бакет data и папку nft.
вот так:
(base) yuriygavrilov@MBP-Yuriy build % ./gnfd-cmd object put anton.json gnfd://data/nft/anton.json
Please enter the passphrase now:
object nft/anton.json created on chain
transaction hash: 068B3F225FED2AD74161D8ED370D809B10E58DC2B3F0EA5E809BAD19E43B5442
uploading progress: 100.00% [ 878B / 878B ], rate: 1000.28 Byte/s
sealing...
upload nft/anton.json to gnfd://data/nft/anton.jsonЯ не нашел как посмотреть публичную ссылку в командной строке, но это можно сделать в сервисе
dcellar.
Вот так это выглядит:
ну и еще загрузим на будущее саму фотку так:
./gnfd-cmd object put anton.jpg gnfd://data/nft/anton.jpgи да, сам json я готовил по стандарту erc-721, тут можно почитать про него подробнее: https://eips.ethereum.org/EIPS/eip-721
Взял там ключевое, формат файла метаданных:
{"name": "Anton Gusev", "description": "Anton Gusev is the founder of the WEB 3.0 ecosystem CLC (mobile applications and blockchain projects), an NFT collector. He is an expert in launching startups and developing businesses (IT, e-commerce). He runs his own YouTube channel about management, investments, and technologies. Anton is a speaker and enthusiast in the field of cryptocurrencies, metaverses, neural networks, and modern technologies. He hosts YouTube and Telegram channels called - Duck Tales. He is also the author of articles in business publications, a consultant on launching new projects and market entry strategies. Anton is a writer (his novel is called - Fish Always Swim to the Right), a producer, a designer of stories and characters, and a fan of animation (especially Japanese).", "image": "https://greenfield-sp.defibit.io:443/view/data/nft/anton.jpg"}Теперь идем дальше, нужно научится делать смарт контракт. Было не просто, кучу всего надставить локально, настраивать окружения и т.д. но в итоге я нашел отличный сервисы и справился проще и быстрее.
Нам понадобиться https://wizard.openzeppelin.com, https://remix.ethereum.org и еще, но не обязательно https://www.alchemy.com
openzeppelin – поможет составить контракт
remix – задеплоить контракт
alchemy – мне пригодилась для создания api ключей и написания js приложения для тестирования с помощью нейронки gpt4o. Кстати справилась хорошо, но были ошибки. с зависимостями в силу изменений и пришлось чуть чуть поправить код и импорты.
Заходим в визард для создания контракта:
Код получился примерно такой:
// SPDX-License-Identifier: MIT
// Compatible with OpenZeppelin Contracts ^5.0.0
pragma solidity ^0.8.20;
import "@openzeppelin/contracts@5.0.2/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts@5.0.2/token/ERC721/extensions/ERC721Burnable.sol";
import "@openzeppelin/contracts@5.0.2/access/Ownable.sol";
contract AntonGussev is ERC721, ERC721Burnable, Ownable {
constructor(address initialOwner)
ERC721("Anton Gussev", "NFT")
Ownable(initialOwner)
{}
function _baseURI() internal pure override returns (string memory) {
return "https://greenfield-sp.defibit.io/view/data/nft/anton.json";
}
function safeMint(address to, uint256 tokenId) public onlyOwner {
_safeMint(to, tokenId);
}
}Далее переходим в remix и компилируем
Далее переходим в деплой, указываем сеть Sepolia и первоначального владельца.
Теперь можно жать деплой.
Я подключался из метамаска и там надо будет подтвердить транзакцию из него.
После чего reemix выдаст лог и ссылку на транзакцию.
У меня уже есть контракт поэтому я не буду новый делать.
После успешного деплоя нужно вызвать функцию минта NFT из него.
Для этого находим функцию и делаем транзакцию
Лог выглядит так:
Можно переходить по ссылке и смотреть ее
Далее можно заходить на OpenSea и смотреть, что вышло:
https://testnets.opensea.io/collection/anton-gusev
И вот тут у меня было сложности как видите. или точнее не видите.
Первый раз я что то накосячил и картинки были не видны как и тут четвертая:
Я не знал, что делать и как проверить. В интернете писали, что тестовый opensea не поддерживает картинки, а чеканить без гарантии в основной сети я не хотел. Это стоило около 50 баксов без минта.
В общем я решил спросить сеть и написать прогу для теста NFT.
Нейронка выдала примерно это:
require('dotenv').config();
const axios = require('axios');
const { ethers, JsonRpcProvider } = require('ethers');
// Ensure the ALCHEMY_API_KEY is loaded properly
if (!process.env.ALCHEMY_API_KEY) {
throw new Error("Missing ALCHEMY_API_KEY environment variable");
}
const provider = new JsonRpcProvider(`https://eth-sepolia.g.alchemy.com/v2/${process.env.ALCHEMY_API_KEY}`);
const contractAddress = '0x084cc7deda8cd1dc0051362ed514d510a0e65225';
const abi = [
"function tokenURI(uint256 tokenId) external view returns (string memory)"
];
const contract = new ethers.Contract(contractAddress, abi, provider);
async function getTokenMetadata(tokenId) {
try {
const tokenURI = await contract.tokenURI(tokenId);
console.log("Token URI:", tokenURI);
const metadataResponse = await axios.get(tokenURI);
const metadata = metadataResponse.data;
console.log("Metadata:", metadata);
return metadata;
} catch (error) {
console.error("Error fetching token metadata:", error);
}
}
const tokenId = 4;
getTokenMetadata(tokenId);ну и то, что нужно поставить:
npm install ethers
npm install dotс
npm install axios
mkdir nft-sepolia
cd nft-sepolia
npm init -y
touch fetchNFT.js
touch .envКод выше я уже подредактировал на мой контракт и токен id 4. Для проверки текущего минта.
Еще были и другие попытки, но я выбрал эту так как нужен API ключ, а ключ Alchemy мне легко достался.
в файл .env нужно прописать ключ api “ALCHEMY_API_KEY=XXXXX” Полученный на из аккаунта https://www.alchemy.com
Теперь вроде все, можно проверять.
Запускаем...
node fetchNFT.js
Класс, видно, что работает.. и цвет зеленый, значит json формат хороший.
Вот так я и нашел багу первую, у меня вывод был не зеленый. А у других NFT зеленый. Оказалось дело было в квотировании кавычками внутри текста. Пришлось убрать “ и заменить их просто дефисом.
Но почему не видно картинку на OpenSea все же?
А наше еще зайти на нее и нажать обновление метаданных тут:
Жмем... ждем... иии....
Магия не происходит))) в этот раз я где то еще накосячил. ( контракт не тот указал блин 🙈🙈🙈, но когда это писал этого я еще не знал :) )
А прошлый лог оказался от другого токен id.
Вот, точно. BaseURI и TokenID совмещаются это есть в спецификации контракта и можно проверить через вызов контракта как на картинке:
В общем кидаем еще один json чик с id 4 и должно заработать...
(base) yuriygavrilov@MBP-Yuriy build % ./gnfd-cmd object put anton.json gnfd://data/nft/anton.json4
Please enter the passphrase now:
object nft/anton.json4 created on chain
transaction hash: CB93C2CF1EF22DBAEF4A99F32893D2342BE2FD762EA7D832EC8C31BD74036E8A
uploading progress: 100.00% [ 878B / 878B ], rate: 1.01 KB/s
sealing...
upload nft/anton.json4 to gnfd://data/nft/anton.json4Вот, теперь норм должно быть, проверяем:
Еще надо обновить мету на OpenSea...
И проверим наш текущий id через наш скрипт
node fetchNFT.js
Все! 🥳🥳🥳
Теперь можно продавать Антону :)
🤑🤑🤑🤑🤑🤑
На что еще можно обратить внимание при выборе хранения:
www.arweave.org – The Arweave network is like Bitcoin, but for data: A permanent and decentralized web inside an open ledger. Можно тут попробовать: www.akord.com
nft.storage
storj.io
https://ucm-wiki.g8way.io/#/en/main – Universal Content Marketplace
Простые чаты, много нейронок, есть api. Из минусов – не генерит картинки, а только ascii котиков. Можно оплачивать криптой.
Очерендная нейронка для поиска по фото.
Работает норм. Варианты подбирает логично.
Всем привет! Недавно посетил конференцию The Trends, посвященную криптовалютам, ИИ, трендам. Изначально не планировал идти, но возможность получить VIP-доступ в обмен на участие в дискуссионной панели была слишком соблазнительна. В целом, все прошло нормально, хотя организация была немного хуже, чем в прошлый раз, но масштаб мероприятия был больше.
Некоторые залы были полупустыми, например, где стартапы представляли свои проекты. Им хотелось бы больше внимания. Однако в других залах, например, в зале, посвященном искусственному интеллекту, где проходил конкурс короткометражных фильмов, созданных за 48 часов, было очень многолюдно. Главная сцена периодически заполнялась в ожидании интересных докладов. В целом, большинство участников остались довольны.
Конференция была посвящена трендам в различных областях: искусственном интеллекте, блокчейне, развитии городов, цифровом искусстве (где я участвовал в дискуссионной панели), инвестициях, майнинге, трейдинге и других “хайпожорских” направлениях).
Одно из интересных наблюдений было связано с докладом о направлении Depin. Если вы хотите узнать больше, вот статья на РБК по этой теме: https://www.rbc.ru/crypto/news/661f8a929a794794a96553d6.
Докладчик рассказал о том, как три года назад вложил 8 тысяч и заработал более 100 тысяч. Конечно, речь шла не о его успехах, а о популярном сейчас направлении среди венчурных капиталистов. Depin (decentralized physical infrastructure networks) – это объединение разрозненных вычислительных ресурсов в единую сеть, где эти ресурсы можно покупать и продавать и все управляется в блокчейне. Например, проект Rendernetwork объединяет ресурсы графических карт и позволяет арендовать их для различных вычислений за небольшую плату.
Другой известный проект – Internet Computer, который сейчас на слуху, но подобных проектов уже насчитывается более тысячи. Я участвую в одном из таких Depin-проектов, сдавая в аренду свой большой жесткий диск и получая за это небольшое вознаграждение. Чем больше проект задействован, тем больше нагрузка на чтение данных и выгода от этого. Всем хорошего воскресения – будьте в тренде 🙂 ПС: тут проходил конкурс фильмов: https://myfilm48.ru/ а вот фильм самого победителя
Первое место:
Второе место:
третье:
Был в прошлом году, было отлично! В этом году будет еще больше гостей!
15-16 Мая 2024 м. Павелецкая.
Билеты тут: The Trends 2.0
Локация: ->>
Присоединяйся!
Массово запустили минты и рынок заполнился, флор доходит до 3 тон за 10 млн. Но купить по такой цене практически нереально. Видимо боты работают.
Brickspacer ...
Brickspacer — современный художник, режиссер анимации и дизайнер персонажей. Его работы неоднократно взрывались в Интернете, вдохновляя множество других авторов. Вы наверняка хотя бы раз сталкивались с его потрясающими персонажами.
Видеохолсты художника не только доступны для покупки на рынке криптоарта, но и демонстрируются на видных выставках в мировых культурных столицах, таких как Токио, Дубай, Пекин, Берлин, Лондон и Нью-Йорк.