Asymmetric Edge ๐ค
22 posts

Asymmetric Edge ๐ค
@Asymm_Edge
"It's not the mountain we conquer, but ourselves" - Edmund Hillary









prologue Taking my dr.โs (Sompolinsky) advice to rest a bit and have fun after Toccataโs release, I started experimenting with argent: a small high-level DSL for multi-contract covenant apps that produces silverscript code. Please donโt laugh at this definition of โrestโ ;) Releasing heavy core consensus upgrades carries a massive burden of mainnet responsibility. Playing with language compilers and application structure is exploratory work. So yes, for some ppl, it might genuinely feel like resting. --- About three months ago, during the development of Toccata and silverscript, Ori (@someone235) threw a quick sentence at me: โYou can implement a mechanism similar to MAST using ICC.โ (Stay with us if you want to understand what MAST is and why Ori was only partially right.) Around that time, I started playing with complex scripts over silverscript and mostly tried to understand what a complex contract system over the new Kaspa script engine/silverscript could look like (or if one could be built at all). One thing led to another and I started trying to develop a chess game over silverscript. โokay codex, letโs start developing chess, letโs start with a chess game with basic movement rules, no complications. An array of 64 cells representing the board, public keys for black/white, turn, movement. The bare minimum that is still sufficiently complex.โ Of course, the first attempt didnโt go so well. As is fitting for a compiler in its early days, I quickly reached a state where I was the first one walking through certain code paths. This triggered a burst of contributions to silverscript itself and/or finding temporary workarounds. The second attempt got stuck on the boundaries of the script itself. It turns out that implementing all the game rules for every possible piece plus scan loops statically unrolled to 64 iterations is, how should I put it, not really workable and tends to blow up. I came to the conclusion that the logic needed to be shattered into different contracts, meaning different scripts. But how do you do that within the boundaries of a game? And what if I want to implement a decentralized chess league with players and scores that persist and update over time? (By the way, chess is a complex and interesting test case for development, but donโt mistakenly think for a second that this discussion is limited to or aimed at games.) >>













Let's pump $KAS using Lukes name ๐ What's he gonna do about it?










