Skip to content
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
41ab9aa
fix(fees): align Studio with consensus v0.6 economics
MuncleUscles Aug 27, 2026
8d43de4
test(fees): derive settlement deposit from quote
MuncleUscles Aug 27, 2026
5213679
chore(genvm): replace dead source pin
MuncleUscles Aug 27, 2026
de7d032
test(fees): cover timeout rotation multiplier
MuncleUscles Aug 27, 2026
d9fe46d
fix(fees): align studio with consensus v0.6
MuncleUscles Aug 27, 2026
9dfb13f
fix(hardhat): restore reproducible deployment profile
MuncleUscles Aug 27, 2026
179897c
fix(consensus): match v0.6 round lifecycle
MuncleUscles Aug 27, 2026
5060b16
fix(consensus): bind appeals to exact decisions
MuncleUscles Aug 27, 2026
7ef2a26
feat(rpc): expose v0.6 decision lifecycle
MuncleUscles Aug 28, 2026
4b42a1a
fix(fees): complete v0.6 runtime parity
MuncleUscles Aug 28, 2026
b6c731a
fix(consensus): pin appeal selection authority
MuncleUscles Aug 28, 2026
7bf782f
fix(consensus): make appeal admission failure value-safe
MuncleUscles Aug 28, 2026
bebbe34
fix(consensus): preserve paid appeals across worker failures
MuncleUscles Aug 28, 2026
975059e
fix(consensus): make internal message effects replay-safe
MuncleUscles Aug 28, 2026
ab31fb0
fix(consensus): reject unregistered internal recipients
MuncleUscles Aug 28, 2026
0bd2b9d
fix(consensus): recover message effects atomically
MuncleUscles Aug 28, 2026
eaa57af
fix(rpc): keep pre-fee consensus entrypoints decodable
kirilaa Aug 28, 2026
e7f5a6f
fix(rpc): serve a name-unique consensus ABI
kirilaa Aug 28, 2026
dbe41f0
fix(consensus): treat a rollup-free deployment as a valid emission path
kirilaa Aug 28, 2026
7307906
chore: merge v0.123-dev, keeping the live leader-data genvm pin
kirilaa Aug 28, 2026
1f423e7
chore(genvm): repin to the merged leader-data commit on v0.6-dev
kirilaa Aug 28, 2026
0d13a5b
fix(consensus): carry the parent rotation schedule onto claims
kirilaa Aug 28, 2026
e7d5000
fix(consensus): bind message effects to protocol recipients
MuncleUscles Aug 28, 2026
776f6df
fix(consensus): align child admission with v0.6
MuncleUscles Aug 28, 2026
c3ebf60
fix(consensus): complete v0.6 studio parity
MuncleUscles Aug 28, 2026
6a8592c
fix(consensus): report exact creation slots
MuncleUscles Aug 28, 2026
4321d06
fix(fees): close remaining consensus handoff gaps
MuncleUscles Aug 28, 2026
601f4b9
fix(rpc): decode submissions without a rollup connection
kirilaa Aug 28, 2026
ce75ac3
fix(tooling): qualify the v0.6 fee train
MuncleUscles Aug 30, 2026
999b302
fix(consensus): close latest v0.6 handoff gaps
MuncleUscles Aug 30, 2026
0ea9cd7
fix(consensus): unwind descendant appeals on rewind
MuncleUscles Aug 30, 2026
484beaa
fix(ghost): scope bundled factory salts by sender
MuncleUscles Aug 30, 2026
ab5f9ea
test(ghost): cover parent-scoped salt reuse
MuncleUscles Aug 30, 2026
581cfb8
fix(fees): derive exact transaction message allocations
MuncleUscles Aug 31, 2026
c5fbef1
test(integration): submit canonical fee envelopes
MuncleUscles Aug 31, 2026
c754fff
fix(studio): close v0.123 correctness gaps
MuncleUscles Aug 31, 2026
935ea43
fix(rpc): hide unexpected server details
MuncleUscles Aug 31, 2026
6b5994c
fix(studio): let fee estimation measure full execution
MuncleUscles Aug 31, 2026
df8b09d
fix(fees): align Studio with GenVM fee buckets
MuncleUscles Aug 31, 2026
1967f26
fix(fees): use canonical allocation wildcard
MuncleUscles Aug 31, 2026
5e0eefc
chore(deps): pin corrected fee SDK heads
MuncleUscles Aug 31, 2026
a3a84fe
chore(deps): repin restacked fee SDK heads
MuncleUscles Aug 31, 2026
f2d7b90
fix(fees): match internal deploy allocations
MuncleUscles Aug 31, 2026
1c0e6e0
fix(consensus): bind salted children to GenVM addresses
MuncleUscles Sep 1, 2026
c2388ec
fix(fees): fund discovered child execution
MuncleUscles Sep 1, 2026
fafcdf3
fix(rpc): expose mined envelope reverts
MuncleUscles Sep 1, 2026
700d9eb
chore(deps): repin receipt-aware JS SDK
MuncleUscles Sep 1, 2026
1481b7c
chore(deps): repin topup-safe JS SDK
MuncleUscles Sep 1, 2026
0682780
fix(fees): align envelope and shared allocations
MuncleUscles Sep 1, 2026
7b8d885
chore(deps): repin message event SDK
MuncleUscles Sep 1, 2026
ffc0a9f
fix(validators): replace pools atomically
MuncleUscles Sep 1, 2026
69597ce
test(fees): lock fresh appeal capacity
MuncleUscles Sep 1, 2026
9e715f2
fix(release): harden studio parity boundaries
MuncleUscles Sep 1, 2026
d0da103
test(ci): isolate fee default regression
MuncleUscles Sep 1, 2026
79b8aa8
test(ci): fund gltest default submissions
MuncleUscles Sep 1, 2026
6a353e4
test(ci): fund gltest write defaults
MuncleUscles Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 33 additions & 13 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ DBPASSWORD='postgres'
DBPORT='5432'
DATABASE_POOL_SIZE='20' # Database connection pool size
DATABASE_MAX_OVERFLOW='10' # Maximum overflow connections
# Set the compose profile to 'hardhat' to use the hardhat network
REMOTE_DATABASE='false'

########################################
Expand All @@ -27,7 +26,6 @@ SERVER_NAME='studio.genlayer.com'

########################################
# Compose and Build
# Set the compose profile to 'hardhat' to use the hardhat network
COMPOSE_PROFILES=''
FRONTEND_BUILD_TARGET='dev' # change to 'dev' to run in dev mode
BACKEND_BUILD_TARGET='debug' # change to 'prod' or remove to run in prod mode
Expand All @@ -51,12 +49,35 @@ GENVM_WEB_DEBUG="0"
########################################
# Studio Fee Accounting
# Set all three price values to 0 to run Studio in gasless mode.
GENLAYER_STUDIO_GEN_PER_TIME_UNIT='1000000000000000' # 0.001 GEN per time unit
GENLAYER_STUDIO_STORAGE_UNIT_PRICE='1'
GENLAYER_STUDIO_RECEIPT_GAS_PRICE='1'
GENLAYER_STUDIO_GEN_PER_TIME_UNIT='1' # v0.6 neutral time-unit multiplier
GENLAYER_STUDIO_STORAGE_UNIT_PRICE='250000000' # v0.6 default: 0.25 gwei
GENLAYER_STUDIO_RECEIPT_GAS_PRICE='250000000' # v0.6 default: 0.25 gwei
# Combined developer + DAO share of gross time-unit fees (15% by default).
GENLAYER_STUDIO_TIME_UNIT_OVERLAY_BPS='1500'
# v0.6 Idleness phase bounds (PHASE_TIMEOUT_BOUNDS=30,600,30,600).
GENLAYER_STUDIO_MIN_PROPOSE_TIMEUNITS='30'
GENLAYER_STUDIO_MAX_PROPOSE_TIMEUNITS='600'
GENLAYER_STUDIO_MIN_COMMIT_TIMEUNITS='30'
GENLAYER_STUDIO_MAX_COMMIT_TIMEUNITS='600'
# Governance-controlled external allocation gas-limit floor; 0 disables it.
GENLAYER_STUDIO_MIN_EXTERNAL_GAS_LIMIT='0'
# Messages has an independent hard protocol ceiling (20 maximum); the optional
# FeeManager cap may lower it further when non-zero.
GENLAYER_STUDIO_MAX_ALLOCATED_MESSAGES='20'
GENLAYER_STUDIO_MAX_MESSAGES_PER_TX='0'
# Governance-controlled receipt/output admission caps; 0 disables them.
GENLAYER_STUDIO_MAX_EQ_OUTPUTS_BYTES='0'
GENLAYER_STUDIO_MAX_SUBMITTED_MESSAGES_BYTES='0'
GENLAYER_STUDIO_FIXED_PROPOSE_RECEIPT_GAS='210000'
GENLAYER_STUDIO_FIXED_MESSAGE_REVEAL_GAS='100000'
GENLAYER_STUDIO_RECEIPT_WRAPPER_BYTES='1024'
# Studio's virtual v0.6 GhostFactory deployment. These defaults are stable
# across RPC replicas. Override all three only when intentionally mirroring a
# concrete Consensus deployment (GhostFactory, CreationPhase, bytecodeEVM).
GENLAYER_STUDIO_GHOST_FACTORY_ADDRESS='0x130e09c996462963A6398CA04e1011e6ef9d68a6'
GENLAYER_STUDIO_CREATION_PHASE_ADDRESS='0x6AF00387f985684f159d673b15265E651B9E29f8'
GENLAYER_STUDIO_GHOST_BYTECODE_HASH='0x4249189346902cb6f0afc196d5719e1b4cbc861a700ae3b0c6dcbe51e5e566de'
GENLAYER_STUDIO_GHOST_FACTORY_INITIAL_NONCE='2'

# Ollama Server Configuration
OLAMAPORT='11434'
Expand All @@ -71,11 +92,10 @@ WEBDRIVER_TIMEOUT_MS="60000"
WEB_RENDER_RETRIES="2"

########################################
# Consensus Rollup
# Hardhat port
HARDHAT_URL='http://hardhat'
# Optional legacy Hardhat inspection bridge. Studio protocol state and ghost
# addresses are DB-authoritative and do not require this service.
HARDHAT_URL=''
Comment thread
coderabbitai[bot] marked this conversation as resolved.
HARDHAT_PORT='8545'
HARDHAT_PRIVATE_KEY='0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'
GENLAYER_CHAIN_ID='61999'

########################################
Expand Down Expand Up @@ -118,10 +138,10 @@ RATE_LIMIT_ANON_PER_DAY='5000' # Anonymous per-day limit
RATE_LIMIT_READ_MULTIPLIER='10' # Cheap reads (no GenVM) get this multiple of the tier limits

# PENDING-tx queue depth caps for eth_sendRawTransaction (admission control).
# Empty / unset = no cap (the default for self-hosted). Public shared
# deployments should set both to prevent one user filling the queue.
MAX_PENDING_PER_CONTRACT_DEFAULT='' # Cap PENDING txs per contract (e.g. 50)
MAX_PENDING_PER_SENDER_DEFAULT='' # Cap PENDING txs per sender (e.g. 20)
# The per-recipient cap defaults to Consensus Queues' 20 even when empty;
# the Studio-only per-sender cap remains disabled unless explicitly set.
MAX_PENDING_PER_CONTRACT_DEFAULT='' # Empty = protocol default 20
MAX_PENDING_PER_SENDER_DEFAULT='' # Empty = disabled
# Daily per-contract snapshot-byte budget (empty = off). Hosted sandbox
# example: 1073741824 (1 GiB). First write of the UTC day always allowed.
MAX_CONTRACT_SNAPSHOT_BYTES_PER_DAY=''
Expand Down
4 changes: 3 additions & 1 deletion .github/scripts/install-python-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@
set -euo pipefail

python -m pip install --only-binary :all: -r requirements.txt
python -m pip install --only-binary :all: -r requirements.test.txt
# The prerelease qualification cut pins the SDK and test harness to immutable
# Git commits until their coordinated package versions are published.
python -m pip install -r requirements.test.txt
python -m pip install --only-binary :all: -r backend/requirements.txt
4 changes: 2 additions & 2 deletions .github/workflows/load-test-oha.yml
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ jobs:
sleep 15

# Install required Python packages
pip install genlayer-py requests
pip install -r ../../requirements.test.txt

# Deploy contracts one by one with delays
echo "=== Contract Deployment Test ==="
Expand Down Expand Up @@ -612,7 +612,7 @@ jobs:
- name: Run State Integrity Test (lost update detection)
run: |
cd tests/load
pip install genlayer-py requests
pip install -r ../../requirements.test.txt
python3 test_state_integrity.py http://localhost:4000/api --txs 20

- name: Dump Docker Compose logs
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ consensus/nodes/nodes.json
# npm
node_modules/
package-lock.json
!hardhat/package-lock.json
/package.json

# Nginx TLS certificates and keys
Expand Down
24 changes: 4 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,11 @@ $ genlayer up
```
After executing those commands a new tab will open in your browser with the GenLayer Studio. Additional installation instructions can be found [here](https://docs.genlayer.com/simulator/installation)

### Enabling Hardhat Node
If you need to interact with a local Hardhat node for transaction processing, make sure to add the following to your `.env` file:
### Hardhat protocol tests

```
HARDHAT_URL=http://hardhat
HARDHAT_PORT=8545
COMPOSE_PROFILES=hardhat
```

This will enable the Hardhat service when running `genlayer up`.

### Disabling Hardhat Node
If you need to disable the Hardhat node, make sure to remove the following from your `.env` file:

```
HARDHAT_URL=
HARDHAT_PORT=
COMPOSE_PROFILES=
```

This will disable the Hardhat service when running `genlayer up`.
Studio transaction processing no longer depends on a separate Hardhat node.
The contracts under `hardhat/` remain a protocol-parity test harness and can
be tested directly from that directory.

## 🚀 Key Features
* 🖥️ **Test Locally:** Developers can test Intelligent Contracts in a local environment, replicating the GenLayer network without the need for deployment. This speeds up the development cycle and reduces the risk of errors in the live environment.
Expand Down
Loading
Loading