Waves developers Ru
и да, выборка нужна тысяч 10 чисел для проверки
Читать полностью…т.е. не все 32 байта брать, а со смещением и переводить в инт
Читать полностью…@deemru , здравствуйте!
Подскажите, как правильно получить случайное число в диапазоне из VRF?
Я использую такой код сейчас
let randomSeed = toInt(keccak256(vrf))
let randomNumber = randomSeed % (12 - 1 + 1) + 1
Суть вопроса в другом:
У клиента Trust wallet.
Монеты на его waves адрес на Trust wallet ушли от меня.
Почему клиент их не видит у себя в Trust wallet?
https://wavesexplorer.com/transactions/DhuqvvrQk6gUUabCXRLj9YcLRmrwx1heHCAHCLMV8GjE
Читать полностью…Других честных вариантов проверяемых консенсусом сети не придумано.
Быстрее можно только через ключ на бэкенде: https://habr.com/ru/companies/waves/articles/464357/
- уникальная и детерминированная (что для нас в случае рандома самое важное), это проверяется консенсусом сети
- 1) запишет все необходимые данные, которые дальше не могут больше меняться
- 2) да
- 3) запросить результат, который является однозначно посчитанным и проверенным = result( commit + reveal )
ну в утках это же работает, я пытаюсь реализовать подобную схему. Еще нашел в старых записях про рандомазер, там можно было подключить библиотеку и просто вызвать let random = randomInt(1, 10). Вот это были времена (
Читать полностью…Я почитал, пытаюсь понять как это сделать
Читать полностью…Вам же сказали: /channel/tradisys_russia/79700
Читать полностью…Попробуй так:
let randomHash = sha256(randomSeedBlock.vrf.value())
toInt(randomHash, 16) % maxValue
нужно в траст валлет добавить этот токен по id
Читать полностью…На этой платформе, право на скам, только у одного человека.
😂😂😂😂
Чтоб твой рускоин скам народ не видел и не загонял тебе депозиты за мошенничество
Читать полностью…Почему клиент не видит монет, отправленных ему, выпущенных на базе waves, на своём кошельке trust wallet?!
Читать полностью…Когда будет нода скачал фаил распоковал она подключилась и начила майнить? 5 лет уже прошло все не сделаете
Читать полностью…Но ключ на бэке, очевидно, известен бэку и его владелец может манипулировать этим, поэтому эти схемы имеют ограниченное использование.
Читать полностью…Но если VRF уже уникален, почему он не безопасен? Типа я могу за один блок успеть узнать его VRF и после этого использовать это чтобы обмануть игру?
Следуя этой логике, если очень быстро запрашивать данные то ID транзакции из Invocation можно тоже предугадать.
В алгоритме commit-reveal подразумеваться ожидание, а блокчей и так медленно работает. В тестовой сети после выполнения метода и потом запроса данных через api занимает у меня 3-8 секунд, на генерацию N блоков могу уйти минуты. (
Выходит нормального варианта нет? Я вижу только:
1) Или мы долго ждем - что убивает любую динамическую игру
2) Или мы используем оракул - накладывает дополнительные траты и делает не прозрачным механизм получения рандома
3) Или мы как в моем случае работаем с данными которые можно предугадать
Есть какой-то стандартный оракул к которому можно обратиться для рандома? Сколько будет стоить каждый такой вызов?
Я правильно понимаю, что VRF это типа уникальная подпись блока(типа случайное число)?
И суть этого похода будет сводиться к алгоритму:
1) С клиента взывать метод commit который запишет в данные блокчейна через сколько ждать блок с ответом (например, + 1)
2) Ожидать на клиенте пока высота дойдет до нужного блока
3) С клиента запросить второй метод reveal и получить собственно VRF от высоты загонного блока
Верно?
Если убрать требование о том, что рандом должен быть публично-проверяемым, то можно заюзать приватный оракул, и тогда получится одним вызовом
Читать полностью…Можем ходить кругами, а можете почитать что вам пишут
Читать полностью…Вот я написал код и он походит под мою задачу, просто случайное число для моей игры. Подставляю его и получаю результат матча.
func generateRandomNumber(i: Invocation, min: Int, max: Int) = {
let randomSeed = toInt(keccak256(i.transactionId))
let randomNumber = randomSeed % (max - min + 1) + min
randomNumber
}