diff --git a/packages/cosmic-swingset/Makefile b/packages/cosmic-swingset/Makefile index b3721df7937..233dcbb98a9 100644 --- a/packages/cosmic-swingset/Makefile +++ b/packages/cosmic-swingset/Makefile @@ -111,7 +111,7 @@ t1-provision-one: # Actually start the ag-solo. t1-start-ag-solo: - cd t1/$(BASE_PORT) && ../../bin/ag-solo start --role=two_client + cd t1/$(BASE_PORT) && ../../bin/ag-solo start # scenario3 is a single JS process without any Golang. However, # the client and the chain within the process run two separate @@ -131,17 +131,8 @@ scenario3-run-client: scenario3-run # Set the fake chain here in case the delay has changed. scenario3-run: (cd t3 && \ - ../bin/ag-solo set-fake-chain --role=two_chain --delay=$(FAKE_CHAIN_DELAY) mySimGCI) - cd t3 && ../bin/ag-solo start --role=two_client - -# These rules are the old scenario3. No fake delay at all. -# It's generally better to use the new scenario3. -deprecated-scenario3-setup: - rm -rf t3 - bin/ag-solo init t3 --egresses=none - -deprecated-scenario3-run-client: - cd t3 && ../bin/ag-solo start --role=three_client + ../bin/ag-solo set-fake-chain --delay=$(FAKE_CHAIN_DELAY) mySimGCI) + cd t3 && ../bin/ag-solo start docker-pull: for f in '' -pserver -setup -setup-solo -solo; do \ diff --git a/packages/cosmic-swingset/bin/ag-nchainz b/packages/cosmic-swingset/bin/ag-nchainz index 927558bc3fb..ebf47ac5ea7 100755 --- a/packages/cosmic-swingset/bin/ag-nchainz +++ b/packages/cosmic-swingset/bin/ag-nchainz @@ -126,7 +126,7 @@ start-solos) $SOLO set-gci-ingress --chainID="$chainid" "$gci" "$rpcport" - DEBUG=agoric $SOLO start --role=two_client + DEBUG=agoric $SOLO start ) >>nchainz/logs/$log 2>&1 & done sleep 2 diff --git a/packages/cosmic-swingset/docker/ag-setup-solo b/packages/cosmic-swingset/docker/ag-setup-solo index dacda98cf45..8fff0d5555f 100755 --- a/packages/cosmic-swingset/docker/ag-setup-solo +++ b/packages/cosmic-swingset/docker/ag-setup-solo @@ -3,7 +3,7 @@ SOLO_NAME=${SOLO_NAME-agoric} SOLO_HOME=${SOLO_HOME-$SOLO_NAME} PORT=${PORT-8000} HOST_PORT=${HOST_PORT-$PORT} -IMAGE=agoric/cosmic-swingset-solo +IMAGE=agoric/cosmic-swingset-solo:latest case "$1" in --pull) shift @@ -16,7 +16,7 @@ if test "$1" = shell; then ARGS= shift else - set dummy --webport=$PORT --webhost=0.0.0.0 ${1+"$@"} + set dummy setup --webport=$PORT --webhost=0.0.0.0 ${1+"$@"} shift fi exec docker run \ @@ -24,4 +24,4 @@ exec docker run \ --volume=ag-solo-state:/usr/src/app/solo \ -eAG_SOLO_BASEDIR="$SOLO_HOME" \ --rm -it $FLAGS \ - "$IMAGE" setup ${1+"$@"} + "$IMAGE" ${1+"$@"} diff --git a/packages/cosmic-swingset/lib/ag-solo/fake-chain.js b/packages/cosmic-swingset/lib/ag-solo/fake-chain.js index 8b32caae780..a947fa3d6c7 100644 --- a/packages/cosmic-swingset/lib/ag-solo/fake-chain.js +++ b/packages/cosmic-swingset/lib/ag-solo/fake-chain.js @@ -41,7 +41,7 @@ export async function connectToFakeChain(basedir, GCI, role, delay, inbound) { const vatsdir = path.join(basedir, 'vats'); const argv = [ - `--role=${role}`, + `--role=sim-chain`, `--give-me-all-the-agoric-powers`, bootAddress, ]; diff --git a/packages/cosmic-swingset/lib/ag-solo/main.js b/packages/cosmic-swingset/lib/ag-solo/main.js index 57efb0d1fdf..5f9a71af27a 100644 --- a/packages/cosmic-swingset/lib/ag-solo/main.js +++ b/packages/cosmic-swingset/lib/ag-solo/main.js @@ -64,7 +64,7 @@ start return; } if (!fs.existsSync(AG_SOLO_BASEDIR)) { - await solo(progname, ['init', AG_SOLO_BASEDIR, ...rawArgv.slice(1)]); + await solo(progname, ['init', AG_SOLO_BASEDIR, ...argv.slice(1)]); } process.chdir(AG_SOLO_BASEDIR); await solo(progname, ['add-chain', netconfig]); diff --git a/packages/cosmic-swingset/lib/ag-solo/vats/bootstrap.js b/packages/cosmic-swingset/lib/ag-solo/vats/bootstrap.js index b2a2447f75d..8ae3eb80071 100644 --- a/packages/cosmic-swingset/lib/ag-solo/vats/bootstrap.js +++ b/packages/cosmic-swingset/lib/ag-solo/vats/bootstrap.js @@ -39,7 +39,7 @@ function parseArgs(argv) { } }); if (!gotRoles) { - ROLE = 'three_client'; + ROLE = 'client'; } return { ROLE, giveMeAllTheAgoricPowers, hardcodedClientAddresses }; @@ -112,7 +112,7 @@ export function buildRootObject(vatPowers, vatParameters) { } const additionalPowers = {}; - if (powerFlags.includes('agoric.vattp')) { + if (powerFlags && powerFlags.includes('agoric.vattp')) { // Give the authority to create a new host for vattp to share objects with. additionalPowers.vattp = makeVattpFrom(vats); } @@ -311,8 +311,7 @@ export function buildRootObject(vatPowers, vatParameters) { // localhost, with HTML frontend. Multi-player mode. switch (ROLE) { // REAL VALIDATORS run this. - case 'chain': - case 'one_chain': { + case 'chain': { // provisioning vat can ask the demo server for bundles, and can // register client pubkeys with comms await E(vats.provisioning).register( @@ -325,9 +324,9 @@ export function buildRootObject(vatPowers, vatParameters) { await registerNetworkProtocols(vats, bridgeManager); break; } + // ag-setup-solo runs this. - case 'client': - case 'one_client': { + case 'client': { if (!GCI) { throw new Error(`client must be given GCI`); } @@ -354,11 +353,9 @@ export function buildRootObject(vatPowers, vatParameters) { }); break; } - case 'two_chain': { - // scenario #2: one-node chain running on localhost, solo node on - // localhost, HTML frontend on localhost. Single-player mode. - // bootAddress holds the pubkey of localclient + // fake-chain runs this + case 'sim-chain': { const chainBundler = await makeChainBundler( vats, devices.timer, @@ -407,55 +404,6 @@ export function buildRootObject(vatPowers, vatParameters) { break; } - case 'two_client': { - if (!GCI) { - throw new Error(`client must be given GCI`); - } - await setupCommandDevice(vats.http, devices.command, { - client: true, - }); - const localTimerService = await E(vats.timer).createTimerService( - devices.timer, - ); - await registerNetworkProtocols(vats, bridgeManager); - await addRemote(GCI); - // addEgress(..., PROVISIONER_INDEX) is called in case two_chain - const demoProvider = E(vats.comms).addIngress(GCI, PROVISIONER_INDEX); - // Get the demo bundle from the chain-side provider - const localBundle = await createLocalBundle(vats); - await E(vats.http).setPresences(localBundle); - const bundle = await E(demoProvider).getDemoBundle('client'); - await E(vats.http).setPresences(localBundle, bundle, { - localTimerService, - }); - break; - } - case 'three_client': { - // scenario #3: no chain. solo node on localhost with HTML - // frontend. Limited subset of demo runs inside the solo node. - - // We pretend we're on-chain. - const chainBundler = makeChainBundler( - vats, - devices.timer, - vatAdminSvc, - ); - await registerNetworkProtocols(vats, bridgeManager); - - // Shared Setup (virtual chain side) /////////////////////////// - await setupCommandDevice(vats.http, devices.command, { - client: true, - }); - const localBundle = await createLocalBundle(vats); - await E(vats.http).setPresences(localBundle); - const bundle = await E(chainBundler).createUserBundle('localuser'); - - // Setup of the Local part ///////////////////////////////////// - await E(vats.http).setPresences(localBundle, bundle, { - localTimerService: bundle.chainTimerService, - }); - break; - } default: throw new Error(`ROLE was not recognized: ${ROLE}`); } diff --git a/packages/cosmic-swingset/lib/ag-solo/vats/chain-config.json b/packages/cosmic-swingset/lib/ag-solo/vats/chain-config.json index 8a0dfb06cfb..a157336412a 100644 --- a/packages/cosmic-swingset/lib/ag-solo/vats/chain-config.json +++ b/packages/cosmic-swingset/lib/ag-solo/vats/chain-config.json @@ -12,9 +12,6 @@ "host": { "sourceSpec": "vat-host.js" }, - "http": { - "sourceSpec": "vat-http.js" - }, "ibc": { "sourceSpec": "vat-ibc.js" }, @@ -33,9 +30,6 @@ "sharing": { "sourceSpec": "vat-sharing.js" }, - "uploads": { - "sourceSpec": "vat-uploads.js" - }, "zoe": { "sourceSpec": "vat-zoe.js", "parameters": { diff --git a/packages/cosmic-swingset/lib/ag-solo/vats/solo-config.json b/packages/cosmic-swingset/lib/ag-solo/vats/solo-config.json index 8a0dfb06cfb..944e092a4f4 100644 --- a/packages/cosmic-swingset/lib/ag-solo/vats/solo-config.json +++ b/packages/cosmic-swingset/lib/ag-solo/vats/solo-config.json @@ -1,47 +1,18 @@ { "bootstrap": "bootstrap", - "bundles": { - "zcf": { - "sourceSpec": "@agoric/zoe/contractFacet" - } - }, "vats": { - "board": { - "sourceSpec": "vat-board.js" - }, "host": { "sourceSpec": "vat-host.js" }, "http": { "sourceSpec": "vat-http.js" }, - "ibc": { - "sourceSpec": "vat-ibc.js" - }, - "mints": { - "sourceSpec": "vat-mints.js" - }, "network": { "sourceSpec": "vat-network.js" }, - "provisioning": { - "sourceSpec": "vat-provisioning.js" - }, - "registrar": { - "sourceSpec": "vat-registrar.js" - }, - "sharing": { - "sourceSpec": "vat-sharing.js" - }, "uploads": { "sourceSpec": "vat-uploads.js" }, - "zoe": { - "sourceSpec": "vat-zoe.js", - "parameters": { - "zcfBundleName": "zcf" - } - }, "bootstrap": { "sourceSpec": "bootstrap.js" } diff --git a/packages/cosmic-swingset/lib/ag-solo/vats/vat-provisioning.js b/packages/cosmic-swingset/lib/ag-solo/vats/vat-provisioning.js index 32cb624e8f2..a3f4813f531 100644 --- a/packages/cosmic-swingset/lib/ag-solo/vats/vat-provisioning.js +++ b/packages/cosmic-swingset/lib/ag-solo/vats/vat-provisioning.js @@ -15,7 +15,7 @@ export function buildRootObject(_vatPowers) { vattp = v; } - async function pleaseProvision(nickname, pubkey, powerFlags = []) { + async function pleaseProvision(nickname, pubkey, powerFlags) { let chainBundle; const fetch = harden({ getDemoBundle() { @@ -32,7 +32,7 @@ export function buildRootObject(_vatPowers) { // Do this here so that any side-effects don't happen unless // the egress has been successfully added. - chainBundle = E(bundler).createUserBundle(nickname, powerFlags); + chainBundle = E(bundler).createUserBundle(nickname, powerFlags || []); return { ingressIndex: INDEX }; } diff --git a/packages/cosmic-swingset/lib/chain-main.js b/packages/cosmic-swingset/lib/chain-main.js index f47b40c6e90..5d417002a40 100644 --- a/packages/cosmic-swingset/lib/chain-main.js +++ b/packages/cosmic-swingset/lib/chain-main.js @@ -7,7 +7,7 @@ const AG_COSMOS_INIT = 'AG_COSMOS_INIT'; export default async function main(progname, args, { path, env, agcc }) { const bootAddress = env.BOOT_ADDRESS; - const role = env.ROLE || 'chain'; + const role = 'chain'; const portNums = {};