Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
7625ec1
create simplex chain
samliok Apr 1, 2026
1fa2194
nits
samliok Apr 2, 2026
aabd34c
update naming
samliok Apr 6, 2026
16f378b
Merge branch 'master' into create-simplex-chain
samliok Apr 6, 2026
228bb20
remove timeout mocks
samliok Apr 6, 2026
74aeac5
remove mocks
samliok Apr 6, 2026
ad40a4a
better defaults
samliok Apr 6, 2026
8aa4a10
bazel
samliok Apr 6, 2026
49ae238
temp
samliok Apr 7, 2026
f8c9cdf
use helper struct
samliok Apr 7, 2026
d403011
bazel
samliok Apr 7, 2026
304c20a
update comment
samliok Apr 7, 2026
7ae56a8
lint
samliok Apr 7, 2026
f8e6ac7
Merge branch 'router-mocks' into remove-timeout-mocks
samliok Apr 7, 2026
4a7770f
merge conflicts
samliok Apr 7, 2026
4194991
mocks
samliok Apr 7, 2026
438b2d5
cleanup
samliok Apr 7, 2026
6ed7f90
move to helper
samliok Apr 7, 2026
ae83f07
brackets
samliok Apr 7, 2026
bfa4dfd
bazel
samliok Apr 7, 2026
ab82850
Merge branch 'remove-timeout-mocks' into create-simplex-chain
samliok Apr 7, 2026
d4a66a9
tmp
samliok Apr 6, 2026
a88cf59
Refactor test to share timeout manager between router and chain config
samliok Apr 7, 2026
cea35aa
simplex e21e
samliok Apr 8, 2026
4797ebc
passing
samliok Apr 9, 2026
8b9c76c
build
samliok Apr 9, 2026
1dabe1f
running an l1
samliok Apr 9, 2026
236363b
creating simplex chain
samliok Apr 9, 2026
4cdf552
simplex workinggit add . lfg
samliok Apr 10, 2026
2f02e9e
save
samliok Apr 10, 2026
135d32e
cleanup readme
samliok Apr 10, 2026
e89af9f
send working
samliok Apr 10, 2026
265c3eb
add comments
samliok Apr 10, 2026
448a807
merge commits
samliok Apr 10, 2026
f01cc8f
save
samliok Apr 10, 2026
173da68
no more mocks
samliok Apr 10, 2026
f79c2ee
lint
samliok Apr 10, 2026
0bea0f6
go mod tidy
samliok Apr 10, 2026
111470c
Merge branch 'master' into create-simplex-chain
samliok Apr 15, 2026
7263447
nits, lints, sums
samliok Apr 15, 2026
c08a23c
Merge branch 'master' into create-simplex-chain
samliok Apr 15, 2026
eac499c
fix tests
samliok Apr 15, 2026
ab3ad03
bazel
samliok Apr 16, 2026
7e4997a
threshold
samliok Apr 16, 2026
b608898
Merge branch 'create-simplex-chain' into run-simplex
samliok Apr 21, 2026
2ea5f1f
commit bazel
samliok Apr 21, 2026
510d5f3
run simplex
samliok Apr 21, 2026
4247e5c
save
samliok Apr 28, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ tmp/
*.fls
*.gz
*.pdf
*.wal

.coverage

Expand Down
1 change: 1 addition & 0 deletions .next/cache/.previewinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"previewModeId":"8d02f918265600247c8a52876579796b","previewModeSigningKey":"59c00acda990d004aa4aff9a1a3bf2464008e940a4edf3c3c9ae1c65a9cbdb16","previewModeEncryptionKey":"19731b8c0adf2ca885f60731e34005bc4ce763ba4b83cfcf9adcb8b7eed06f18","expireAt":1776977961683}
1 change: 1 addition & 0 deletions .next/cache/.rscinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"encryption.key":"wr/9ixE7UKgiIj9FzMyXe31u6plQYKhv0f0MBhqcm74=","encryption.expire_at":1776977961677}
6 changes: 6 additions & 0 deletions .next/diagnostics/build-diagnostics.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"buildStage": "compile",
"buildOptions": {
"useBuildWorker": "true"
}
}
1 change: 1 addition & 0 deletions .next/diagnostics/framework.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"Next.js","version":"16.2.3"}
1 change: 1 addition & 0 deletions .next/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"type": "commonjs"}
1 change: 1 addition & 0 deletions .next/trace
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"name":"generate-buildid","duration":232,"timestamp":1468878220958,"id":4,"parentId":1,"tags":{},"startTime":1775768361674,"traceId":"924db08a2af579ac"},{"name":"load-custom-routes","duration":265,"timestamp":1468878221269,"id":5,"parentId":1,"tags":{},"startTime":1775768361674,"traceId":"924db08a2af579ac"},{"name":"create-dist-dir","duration":291,"timestamp":1468878221549,"id":6,"parentId":1,"tags":{},"startTime":1775768361675,"traceId":"924db08a2af579ac"},{"name":"clean","duration":180,"timestamp":1468878222427,"id":7,"parentId":1,"tags":{},"startTime":1775768361675,"traceId":"924db08a2af579ac"},{"name":"discover-routes","duration":1720,"timestamp":1468878230093,"id":8,"parentId":1,"tags":{},"startTime":1775768361683,"traceId":"924db08a2af579ac"},{"name":"create-root-mapping","duration":28,"timestamp":1468878231910,"id":9,"parentId":1,"tags":{},"startTime":1775768361685,"traceId":"924db08a2af579ac"},{"name":"generate-route-types","duration":2297,"timestamp":1468878232337,"id":10,"parentId":1,"tags":{},"startTime":1775768361685,"traceId":"924db08a2af579ac"},{"name":"public-dir-conflict-check","duration":51,"timestamp":1468878234679,"id":11,"parentId":1,"tags":{},"startTime":1775768361688,"traceId":"924db08a2af579ac"},{"name":"generate-routes-manifest","duration":1015,"timestamp":1468878234783,"id":12,"parentId":1,"tags":{},"startTime":1775768361688,"traceId":"924db08a2af579ac"},{"name":"run-turbopack","duration":190571,"timestamp":1468878238803,"id":14,"parentId":1,"tags":{"failed":true},"startTime":1775768361692,"traceId":"924db08a2af579ac"},{"name":"next-build","duration":2998120,"timestamp":1468875431290,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true","failed":true},"startTime":1775768358884,"traceId":"924db08a2af579ac"}]
1 change: 1 addition & 0 deletions .next/trace-build
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"name":"run-turbopack","duration":190571,"timestamp":1468878238803,"id":14,"parentId":1,"tags":{"failed":true},"startTime":1775768361692,"traceId":"924db08a2af579ac"},{"name":"next-build","duration":2998120,"timestamp":1468875431290,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true","failed":true},"startTime":1775768358884,"traceId":"924db08a2af579ac"}]
File renamed without changes.
145 changes: 145 additions & 0 deletions .next/types/cache-life.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
// Type definitions for Next.js cacheLife configs

declare module 'next/cache' {
export { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache'
export {
updateTag,
revalidateTag,
revalidatePath,
refresh,
} from 'next/dist/server/web/spec-extension/revalidate'
export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store'


/**
* Cache this `"use cache"` for a timespan defined by the `"default"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 900 seconds (15 minutes)
* expire: never
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 15 minutes, start revalidating new values in the background.
* It lives for the maximum age of the server cache. If this entry has no traffic for a while, it may serve an old value the next request.
*/
export function cacheLife(profile: "default"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"seconds"` profile.
* ```
* stale: 30 seconds
* revalidate: 1 seconds
* expire: 60 seconds (1 minute)
* ```
*
* This cache may be stale on clients for 30 seconds before checking with the server.
* If the server receives a new request after 1 seconds, start revalidating new values in the background.
* If this entry has no traffic for 1 minute it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "seconds"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"minutes"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 60 seconds (1 minute)
* expire: 3600 seconds (1 hour)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 minute, start revalidating new values in the background.
* If this entry has no traffic for 1 hour it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "minutes"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"hours"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 3600 seconds (1 hour)
* expire: 86400 seconds (1 day)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 hour, start revalidating new values in the background.
* If this entry has no traffic for 1 day it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "hours"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"days"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 86400 seconds (1 day)
* expire: 604800 seconds (1 week)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 day, start revalidating new values in the background.
* If this entry has no traffic for 1 week it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "days"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"weeks"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 604800 seconds (1 week)
* expire: 2592000 seconds (1 month)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 week, start revalidating new values in the background.
* If this entry has no traffic for 1 month it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "weeks"): void

/**
* Cache this `"use cache"` for a timespan defined by the `"max"` profile.
* ```
* stale: 300 seconds (5 minutes)
* revalidate: 2592000 seconds (1 month)
* expire: 31536000 seconds (365 days)
* ```
*
* This cache may be stale on clients for 5 minutes before checking with the server.
* If the server receives a new request after 1 month, start revalidating new values in the background.
* If this entry has no traffic for 365 days it will expire. The next request will recompute it.
*/
export function cacheLife(profile: "max"): void

/**
* Cache this `"use cache"` using a custom timespan.
* ```
* stale: ... // seconds
* revalidate: ... // seconds
* expire: ... // seconds
* ```
*
* This is similar to Cache-Control: max-age=`stale`,s-max-age=`revalidate`,stale-while-revalidate=`expire-revalidate`
*
* If a value is left out, the lowest of other cacheLife() calls or the default, is used instead.
*/
export function cacheLife(profile: {
/**
* This cache may be stale on clients for ... seconds before checking with the server.
*/
stale?: number,
/**
* If the server receives a new request after ... seconds, start revalidating new values in the background.
*/
revalidate?: number,
/**
* If this entry has no traffic for ... seconds it will expire. The next request will recompute it.
*/
expire?: number
}): void


import { cacheTag } from 'next/dist/server/use-cache/cache-tag'
export { cacheTag }

export const unstable_cacheTag: typeof cacheTag
export const unstable_cacheLife: typeof cacheLife
}
55 changes: 55 additions & 0 deletions .next/types/routes.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// This file is generated automatically by Next.js
// Do not edit this file manually

type AppRoutes = never
type PageRoutes = never
type LayoutRoutes = never
type RedirectRoutes = never
type RewriteRoutes = never
type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes


interface ParamMap {
}


export type ParamsOf<Route extends Routes> = ParamMap[Route]

interface LayoutSlotMap {
}


export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap }

declare global {
/**
* Props for Next.js App Router page components
* @example
* ```tsx
* export default function Page(props: PageProps<'/blog/[slug]'>) {
* const { slug } = await props.params
* return <div>Blog post: {slug}</div>
* }
* ```
*/
interface PageProps<AppRoute extends AppRoutes> {
params: Promise<ParamMap[AppRoute]>
searchParams: Promise<Record<string, string | string[] | undefined>>
}

/**
* Props for Next.js App Router layout components
* @example
* ```tsx
* export default function Layout(props: LayoutProps<'/dashboard'>) {
* return <div>{props.children}</div>
* }
* ```
*/
type LayoutProps<LayoutRoute extends LayoutRoutes> = {
params: Promise<ParamMap[LayoutRoute]>
children: React.ReactNode
} & {
[K in LayoutSlotMap[LayoutRoute]]: React.ReactNode
}
}
16 changes: 16 additions & 0 deletions .next/types/validator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// This file is generated automatically by Next.js
// Do not edit this file manually
// This file validates that all pages and layouts export the correct types













26 changes: 25 additions & 1 deletion chains/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ go_library(
"//network",
"//network/p2p",
"//proto/pb/p2p",
"//simplex",
"//snow",
"//snow/consensus/snowball",
"//snow/consensus/snowman",
Expand Down Expand Up @@ -68,19 +69,42 @@ go_library(
"//vms/proposervm",
"//vms/secp256k1fx",
"//vms/tracedvm",
"@com_github_ava_labs_simplex//wal",
"@com_github_prometheus_client_golang//prometheus",
"@org_uber_go_zap//:zap",
],
)

go_test(
name = "chains_test",
srcs = ["subnets_test.go"],
srcs = [
"manager_test.go",
"subnets_test.go",
],
embed = [":chains"],
deps = [
"//api/health",
"//api/metrics",
"//database/memdb",
"//ids",
"//snow/consensus/simplex",
"//snow/networking/benchlist",
"//snow/networking/router",
"//snow/networking/timeout",
"//snow/networking/tracker",
"//snow/validators",
"//subnets",
"//utils/constants",
"//utils/crypto/bls/signer/localsigner",
"//utils/logging",
"//utils/math/meter",
"//utils/resource",
"//utils/set",
"//utils/timer",
"//vms",
"//vms/example/xsvm",
"//vms/example/xsvm/genesis",
"@com_github_prometheus_client_golang//prometheus",
"@com_github_stretchr_testify//require",
],
)
Loading
Loading