DISCLAIMER: the rubidity gem version is different from the rubidity built into the facet vm / app and i (Gerald Bauer) am NOT affiliated with facet computing inc. (middlemarch et al) or paid to work on the rubidity gem.
This is a rubidity & rubysol sandbox by Gerald Bauer
The idea here is to experiment with rubidity "off-chain" and if time permits break the "majestic rails rubidity monolith" also known as "facet vm" (formerly "ethscriptions vm") up into easier to (re)use modules.
For example, why not bundle up a "core" language "rubidity" gem with no dependencies on any blockchain and break out "core / standard" contracts samples and database (SQL) and runtime modules or such.
Updates
-
What's in a name? See What's Rubidity!? What's Rubysol!? »
-
For an alternate approach that look's at the "majestic rails rubidity monolith" code as-is (that is, not suggesting new or alternate syntax or semantics) and simply tries to break out and start to (re)package / modular-ize code in "place holder" gems (waiting for adoption by the founders) such as 0xfacet and 0xfacet-typed and 0xfacet-rubidity see Rubidity O.G. (Dumb Contracts) Public Code Review / (More) Tests / Gems & More »
Aside - Rubidity vs Rubysol - What's the difference (in a nutshell)?
- Rubidity tries to be as close as possible in syntax to solidity and
- Rubysol tries to be as close as possible in syntax to ruby
The first published modules / gems include:
-
rubidity-typed- "zero-dependency" 100%-solidity compatible data type machinery incl. (frozen) string, address, uint, int, enum, struct, array, mapping, and more for rubidity - ruby for layer 1 (l1) contracts / protocols with "off-chain" indexer -
solidity-typed (formerly known as rubidity-typed) - "zero-dependency" 100%-solidity compatible data type and application binary interface (abi) machinery incl. bool, (frozen) string, address, bytes, uint, int, enum, struct, array, mapping, event, and more for solidity-inspired contract (blockchain) programming languages incl. rubidity, rubysol et al
-
rubidity ("next")- ruby for layer 1 (l1) contracts / protocols with "off-chain" indexer -
rubysol - (formerly known as rubidity ("next")) ruby for layer 1 (l1) contracts / protocols with "off-chain" indexer
-
rubysol-contracts - standard contracts (incl. erc20, erc721, etc) for ruby for layer 1 (l1) with "off-chain" indexer
-
uniswap - core uniswap v2 (dumb) contracts for ruby (rubysol) for layer 1 (l1) with "off-chain" indexer
-
programming-uniswap - programming (decentralized finance - defi) uniswap v2 contracts article series, the ruby / rubysol edition
-
punks - 10 000 punks - the facet (dumb) contract edition v1 / v2 (in ruby / rubysol / rubidity)
-
rubidity-classic- rubidity classic / o.g. contract builder; trying the impossible and square the circle, that is, a rubidity "classic / o.g." dsl builder generating rubidity "more ruby-ish" contract classes. -
rubidity - (formerly known as rubidity classic) rubidity "classic / o.g." contract builder; trying the impossible and square the circle, that is, a rubidity "classic / o.g." dsl builder generating rubysol "more ruby-ish" contract classes.
More:
-
rubidity-simulacrum- run (dumb) blockchain contracts in rubidity (with 100%-solidity compatible data types & abis) on an ethereum simulacrum in your own home for fun & profit (for free) -
redpaper- Yes, you can. it's just ruby. Run the sample contracts from the Red Paper with rubidity and simulacrum! -
soliscript (formerly known as rubidity-simulacrum) - run blockchain contracts in rubysol (with 100%-solidity compatible data types & abis) on an ethereum simulacrum in your own home for fun & profit (for free)
-
soliscript.starter (formerly known as red paper contracts) - run (blockchain) contracts in rubysol (with 100%-solidity compatible data types & abis) on an ethereum simulacrum in your own home for fun & profit (for free) incl. the red paper contracts e.g. satoshi dice (gambling), crowd funder, ballot (liquid delegate democracy)
-
rubysol-by-example - Rubysol By Example - an introduction to Rubysol with simple examples (inspired and mostly following Solidity By Example)
-
learninminutes - Learn X in Y Minutes (Where X=Rubysol, Y=?)
For some ongoing (or historic) rubidity discussions & comments from the discord (chat server), see the Changelog - Good Morning.
DRAFT - DRAFT - DRAFT (Version 0.1)
Let's try to square the circle and solve the halting problem of "turing-complete" computing with "normalized" timeouts.
The idea:
Every transaction gets time measured / profiled and if a max time is hit the transaction is halted / stopped and marked as invalid / reverted / aborted.
The problem:
(Compute) Time is relative!
Let's make (transaction processing) time absolute with mathematics / statistics (within a +/- window)...
See /blockchain at the ruby code commons (rubycocos) org.
Join us in the 0xCompute discord (chat server). Yes you can. Your questions and commentary welcome.
Or post them over at the Help & Support page. Thanks.