Syrius Improvements

@sol_sanctum sending transactions with an optional message seems to work.

The UI doesn’t enforce any limitation on the maximum data length. So when entering a very large message the the API creates an exception based on two conditions.

"JSON-RPC error -32000: account-block data field is too big"
When sending an account-block with data larger than 16384 characters

"JSON-RPC error -32000: forbidden parameter"
When the account doesn’t have the required plasma.

// MaxDataLength defines limit of account-block data to 16Kb
MaxDataLength = 1024 * 16

Would be nice if the UI prevents large messages. Maybe even limiting the max allowed data size of 16Kb?

1 Like

I’ve created a new branch for the Dart SDK with distinct fields for chainId and netId.

From my research both chainId and netId fields should be equal and different from mainnet (Alphanet) where both are hardcoded to 1.

Maybe we’ll have only chainId in the SDKs as netId === chainId and netId is a variable bounded to the node. What do you think?

2 Likes

Thanks for the feedback! I agree, we can leverage client-side validation to avoid RPC errors.

I’ve updated my add_message_field branch:

  • enforces a MaxDataLength limit for the message field
  • displays a notification error if PoW Plasma max limit is reached for a transaction

Users will no longer see those JSON-RPC errors.

2 Likes

@sol_sanctum I’ve combined your dynamic chainid with my previous Dart SDK commit and also displayed additional info in the Node Management tab.

1 Like

That’s awesome! I wouldn’t merge this in to syrius until the Dart SDK is officially updated.
What does the tooltip display when the node is added but offline? Example: wss://peers.zenon.network:443

Will you be submitting a PR for your SDK changes?

1 Like

Quick update

I’d appreciate anyone with a Mac to give the new build process a try. Please provide feedback if you run into any issues.

Check out @0x3639’s thread to setup the MacOS dev tools.

Instructions
1. git clone -b linux_poc https://github.com/Sol-Sanctum/syrius.git
2. cd syrius
3. flutter build macos --release
4. brew install create-dmg
5. cd macos
6. ./generateDmgRelease.sh
   - or ./generateDmgRelease-new.sh
7. Navigate to /path-to-syrius/build/macos/ and double-click the .dmg

Future syrius update process could involve package managers, but at least now we have an end-to-end process for devs to produce Release builds for each OS.

Windows - chocolatey??
Mac - brew
Linux - brew or snap

or

1. Press the Update button in syrius
2. download latest Release file from git
3. shutdown the app
4. replace files and re-launch syrius
??

Note: the Linux build does not have an icon for the ELF file. We’ll almost certainly need to support a package manager like snap in order to have that.

2 Likes

Yes, I can handle that, thank you!