waves_ride_dapps_dev | Unsorted

Telegram-канал waves_ride_dapps_dev - Waves Dev Jedi | RIDE for dApps

-

Only tech topics about Waves: dev tools, libs, RIDE, dApps, Nodes Github: http://tiny.cc/github-waves IDE: https://ide.wavesplatform.com/ Online Course: https://stepik.org/course/54415 StackOverflow: #wavesplatform Jobs: https://t.me/wavesridejobs

Subscribe to a channel

Waves Dev Jedi | RIDE for dApps

Thank you! I understand! There's no place for idiots here... Too bad...
Where did those 2 years go? Ah! This is Waves!!!!
Keep falling! Even to 0.00001! And there's no reward! Your system is unstable! I'm sorry.

Читать полностью…

Waves Dev Jedi | RIDE for dApps

The AI ​​world told me I'm not allowed to mine blocks at all. And because of errors, the folder is in the wrong place...

Okay, I tried, and it didn't work, but the node worked! For almost two years. If the developers aren't interested, then screw it!
If the developers don't help, I'm shutting down the server!
And don't tell me about AI and other things...
It's in your best interest to keep the nodes running...

Читать полностью…

Waves Dev Jedi | RIDE for dApps

You asking a real human how to filter your logs in the world of AI? Thats crazy

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Filter the log be ERR and WARN only, you will find out

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Good afternoon. Could you please tell me what's wrong with the test node? The last block was generated on February 17, 2026. There are no more blocks.

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Preparing a proposal isn’t the issue, but passing quorum requires the support of the big nodes. If the first few major nodes vote no or don’t support it, it becomes very hard for the proposal to pass. That also needs to be taken into account.
-
/channel/wavesonchains/9406

Читать полностью…

Waves Dev Jedi | RIDE for dApps

There is also "solana way" - first, you prepare wallet with all the nodes configs saved to storage and next you create the transaction that will use config address above and execute everything

Читать полностью…

Waves Dev Jedi | RIDE for dApps

it's beyond my strength

Читать полностью…

Waves Dev Jedi | RIDE for dApps

mayby someome can rewrite the code, I can't

Читать полностью…

Waves Dev Jedi | RIDE for dApps

there are ride limitations you cannot overcome

Читать полностью…

Waves Dev Jedi | RIDE for dApps

just reduce your args size

Читать полностью…

Waves Dev Jedi | RIDE for dApps

https://classic.wavesexplorer.com/stagenet/tx/B14UjrpTLG2ezoemYR52Q2WhbH2V2s1o3vwFhWVxxwwt
https://classic.wavesexplorer.com/testnet/tx/G7sPAPxBd8SypsNcK97T5B6aPNEvch9esk2CkggkJSrX

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Could someone help, please?

Читать полностью…

Waves Dev Jedi | RIDE for dApps

does Arkimals have one?

Читать полностью…

Waves Dev Jedi | RIDE for dApps

yeah hetzer or contabo

Читать полностью…

Waves Dev Jedi | RIDE for dApps

That sounds like a perfect opportunity for an expert who knows everything about in running a WAVES blockchain node to build an AI SKILL waves-node-expert? The skill would include all the things about a WAVES blockchain nodes ... facets, RPCs, dbs, hardware, hosting, costs, deals, versions, downloads, install, watchers & stats dashboard, deploying, updating, upgrading, UNIT0, etc.

The skill package could have the skill set that maintains, updates and continues to learn how to make running a WAVES blockchain node better and better to ensure that it is always using the best practices. Then get it verified (by the expert [same]) get feedback, make it better and oss the skill for others to use to maintain perfect WAVES blockchain nodes.

Build it and projects will have AI deal with maintaining an awesome node. Many in this group are WAY more qualified than I to be this expert, but building one is 100% on my agenda next week

Читать полностью…

Waves Dev Jedi | RIDE for dApps

would someone send 300 testnet WAVES over to 3MyRWStgHKPnU8B8r44Yww6u5APGQD2hQru

Deploy a testnet facet is on the TODO list, but I need to test some other stuff now. Thanks

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Tell me how to do this?

Читать полностью…

Waves Dev Jedi | RIDE for dApps

How do I check block heights? There might be a sync issue.
Node version 1.6.1

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Aligned WXG Buyback
-
We’re so close to getting this proposal approved! 🤏

If you haven’t voted yet, now’s the perfect moment to jump in and drop a YES. Every vote counts and we’re almost there! 🚀

Читать полностью…

Waves Dev Jedi | RIDE for dApps

This is a really elegant architectural pattern.

The core idea: separate data storage from execution

Right now the proposal is trying to do two things in one transaction:

📦 Carry 61 node configs as payload
⚡️ Execute the setLeaseNodes logic

The "Solana way" splits those into two separate steps.

Step 1 — Write the config to on-chain storage first

Use a Data Transaction (type 12) to store the node list in an account's key-value storage.

Data transactions have a much larger limit (~140KB, 64 entries per tx) — completely separate from the 5120-byte InvokeScript cap.

You'd write something like:

[
{ "key": "nodeConfig", "type": "string",
"value": "3PA1K...=20|3P3RZ...=23|..." }
]


This transaction is cheap (~0.001 WAVES per entry) and has no meaningful size problem for 61 nodes.

Step 2 — InvokeScript just passes the config address

Instead of embedding the huge node list, the InvokeScript only needs to pass the address of the account where the config lives — that's 26 bytes. The contract then reads the data from that address on-chain:
# Inside the RIDE contract
let configAddr = Address(base58'3PxxxxxxxConfigWallet')
let nodeList = getString(configAddr, "nodeConfig")
# ... process nodeList ...


The InvokeScript transaction stays tiny because it's just a pointer, not the payload.

"Solana way"

In Solana's architecture, programs (smart contracts) and accounts (data stores) are completely separate by design — programs are stateless and always read from account storage. It's the dominant pattern over there. WAVES doesn't force this pattern, but the same principle applies: pre-stage large data as a Data Transaction, then invoke logic that reads it.

The practical catch 👇

This only works if the setLeaseNodes RIDE contract is written to accept an address argument and do getString() reads from it — or whoever controls a wallet can write the config to AND the contract already does external data reads. If the current contract only accepts an inline string arg, the contract itself needs updating first, which is its own governance proposal.

So the full flow would be:
[wallet] 
→ Data Transaction: writes nodeConfig string

[InvokeScript to WavesDAO]
→ arg: wallet address (26 bytes)
→ contract reads nodeConfig from that address
→ executes setLeaseNodes

Cleanest solution of the three options — no byte cramming, no node trimming, no split proposals. The downside is it requires the contract to support it.

Читать полностью…

Waves Dev Jedi | RIDE for dApps

If this helps: (Claude's two cents)

This is a great edge case to add to the waves-pwrdao-expert skill — error 199 is going to bite anyone trying to pass governance proposals with large datasets.

A raw WAVES address is 26 bytes:

🔅1 byte: version
🔅1 byte: chainId
🔅20 bytes: public key hash ← the only part that matters
🔅 4 bytes: checksum

Drop the first 2 and last 4 bytes → 20 bytes per address. Plus 1 byte per weight = 21 bytes per node × 61 = 1281 bytes. That saves ~1100 bytes off the arg.

QUESTION: Does setLeaseNodes already accepts a ByteVector arg?

Assumption YES

📝 RIDE Decode Pattern
If you're proposing a contract update, here's how the contract would read the packed format:

# Each node is 21 bytes: [20 bytes addr hash][1 byte weight]
# nodeBytes is the ByteVector arg
func parseNodeAt(nodeBytes: ByteVector, index: Int) = {
let offset = index * 21
let addrHash = nodeBytes.drop(offset).take(20)
let weight = nodeBytes.drop(offset + 20).take(1).toInt()
# Reconstruct address: version(0x01) + chainId(0x57) + hash(20) + checksum
let prefix = base58'3' # version + chainId for mainnet
# Use Address(addrHash) with proper prefix in RIDE v5+
(addrHash, weight)
}

IF NOT, THEN
This pattern only works if the setLeaseNodes contract function is updated to accept ByteVector input. The WavesDAO contract maintainers would need to update the function signature. Alternatively, if the contract already supports binary args, use the encoded value above directly.

================================

Even with ByteVector encoding, you get to ~5246 bytes — still 126 bytes over. You need to also either trim the proposal description or drop 6 marginal nodes (each saves 21 bytes exactly).

Fallback: two proposals (nodes 1–31 and 32–61) that both pass independently — politically messier but always works within byte limits

Читать полностью…

Waves Dev Jedi | RIDE for dApps

what you can do is instead of string base58 addresses use bytevectors (drop first 2 and last 4 bytes)

Читать полностью…

Waves Dev Jedi | RIDE for dApps

"you cannot" also means "no one can"

Читать полностью…

Waves Dev Jedi | RIDE for dApps

can't reduce the args because the proposal would lose its purpose.
The distribution requires including all eligible nodes

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Someone should create proposal opposite to "Lease Idle WAVES to Top 10 Nodes" because it's stupid to give the largest pools even more forging power. I tried to create my own but got the problem with "Create DAO proposal
Proposal transaction failed.
{"error":199,"message":"InvokeScriptTransaction bytes length = 6405 exceeds limit = 5120"}.

And have no idea how to fix it.
My code was:

{
"type": 16,
"version": 2,
"senderPublicKey": "******",
"dApp": "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h",
"call": {
"function": "setLeaseNodes",
"args": [
{
"type": "string",
"value":
3PA1KvFfq9VuJjg45p2ytGgaNjrgnLSgf4r=20|3P3RZeHi4LTjpZdpw7kmkVSbQ84qDfrVy8G=23|3PLp1QsFxukK5nnTBYHAqjz9duWMriDkHeT=26|3PDETXtiaErZncMduS8h9G6aopcjT7wheqj=29|3PCrRrwHEjGXFjYtXDsNv78f3Ch3CH3p6V1=32|3PGobRuQzBY9VbeKLaZqrcQtW26wrE9jFm7=35|3P98uUFYSP3jRr76kUAeW96Vb2m4LZhrAAf=38|3P23fi1qfVw6RVDn4CH2a5nNouEtWNQ4THs=41 ... etc in total 61 nodes.

Nodes included in the distribution must:
have forged at least one block in the last 30 days.
Nodes with smaller generating balances receive higher weights.
Nodes with larger balances receive smaller weights.

Читать полностью…

Waves Dev Jedi | RIDE for dApps

Does anyone know addresses of Unilend contracts and source code?

Читать полностью…

Waves Dev Jedi | RIDE for dApps

might be cool. are they a lot of trouble to run?

Читать полностью…

Waves Dev Jedi | RIDE for dApps

how about repos for the downloads and tutorials

Читать полностью…

Waves Dev Jedi | RIDE for dApps

those are hosting providers

Читать полностью…
Subscribe to a channel