mirror of
https://github.com/logos-storage/codex-factory.git
synced 2026-01-04 05:53:09 +00:00
feat: bee 1.0.0 (#41)
* feat: new Price Oracle bytecode * refactor: remove file smth.txt * feat: new PostageStamp contract * feat: change contract deploy workflow * feat: bee-1.0.0-rc2 compatible runner * feat: build from source (#47) * feat: extend build-envrionment.sh with building bee image from source * ci: new workflow option parameter - beeVersionAsCommitHash * fix(ci): try to overwrite BEE_VERSION sys variable * fix: do not export BEE_VERSION after env build * fix(ci): run build-environment without source command * fix(ci): try to retrieve built BEE_VERSION value * fix: save build BEE_VERSION value * fix(ci): retrieve built image tag in the last step * refactor: echoerr * refactor(ci): export sys variables * feat: disable warmup time (#46) * feat: disable warmup time * fix: place warmup-time to the correct place * fix: put quote back where it truly belongs * feat: state commit (#45) * refactor: remove payment treshold option because it causes performance issues * docs: design planned parameters for the new build workflow * feat: build environment with traffic gen option * fix(log): rephrase traffic gen log * feat: special bee version tagging when state commit happens * build: new env variable STATE_COMMIT * ci: STATE_COMMIT * feat: state commit scripts * refactor: destroy containers after state producing * refactor: remove unnecessary echo * fix: blockchain version at state commit * build: bumo bee-js version * build: update package-lock * fix: fixes * ci: build environment workflow with state commit * refactor: buy larger stamp * fix: publish workflow * refactor: increase stamp depth * fix: bee version fetch at commit * refactor: start containers normally instead of ephemeral for debugging * fix(ci): add chown for bee user on bee-data-dirs in order to write bee state * fix: try out the permission on bee data dir with 777 chmod * fix(ci): give folder permission in the build environment phrase * refactor(ci): raise sleep between uploads in order to generate cheques * refactor: wait 11 secs after batch purchase * fix: commit version tag string true instead of boolean * fix: add state commit check for set COMMIT_VERSION_TAG * chore: bump bee version Co-authored-by: Cafe137 <77121044+Cafe137@users.noreply.github.com>
This commit is contained in:
parent
e163745839
commit
b8e451e57e
21
.github/workflows/publish.yaml
vendored
21
.github/workflows/publish.yaml
vendored
@ -2,14 +2,20 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
buildImage:
|
buildImage:
|
||||||
description: 'Build Docker Image according to the environment'
|
description: 'Build and push Docker Image according to the environment'
|
||||||
default: 'false'
|
default: 'false'
|
||||||
commitVersionTag:
|
commitVersionTag:
|
||||||
description: 'The image tag will be retrieved from the bee version command'
|
description: 'The image tag will be retrieved from the bee version command'
|
||||||
default: 'false'
|
default: 'false'
|
||||||
beeVersion:
|
beeVersion:
|
||||||
description: 'The official bee image tag that the image will be built on. Default: last supported version'
|
description: 'The official bee image tag that the image will be built on. Default: last supported version'
|
||||||
default: '0.5.3'
|
default: 'latest'
|
||||||
|
beeVersionAsCommitHash:
|
||||||
|
description: 'The beeVersion parameter will be interpreted as a source code commit hash that the bee base image will be built on'
|
||||||
|
default: 'false'
|
||||||
|
stateCommit:
|
||||||
|
description: 'The images will have cheques by the traffic generation'
|
||||||
|
default: 'false'
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- 'master'
|
||||||
@ -21,6 +27,8 @@ env:
|
|||||||
BEE_IMAGE_PREFIX: 'docker.pkg.github.com/ethersphere/bee-factory'
|
BEE_IMAGE_PREFIX: 'docker.pkg.github.com/ethersphere/bee-factory'
|
||||||
COMMIT_VERSION_TAG: ${{ github.event.inputs.commitVersionTag }}
|
COMMIT_VERSION_TAG: ${{ github.event.inputs.commitVersionTag }}
|
||||||
BEE_VERSION: ${{ github.event.inputs.beeVersion }}
|
BEE_VERSION: ${{ github.event.inputs.beeVersion }}
|
||||||
|
BUILD_IMAGE: ${{ github.event.inputs.beeVersionAsCommitHash }}
|
||||||
|
STATE_COMMIT: ${{ github.event.inputs.stateCommit }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bee-images:
|
bee-images:
|
||||||
@ -44,7 +52,14 @@ jobs:
|
|||||||
run: npm ci
|
run: npm ci
|
||||||
- name: Build images
|
- name: Build images
|
||||||
run: |
|
run: |
|
||||||
npm run build:env
|
BUILD_PARAMS=""
|
||||||
|
if [ $BUILD_IMAGE == 'true' ] ; then
|
||||||
|
BUILD_PARAMS+=" --build-base-bee --base-bee-commit-hash=$BEE_VERSION"
|
||||||
|
fi
|
||||||
|
if [ $STATE_COMMIT == 'true' ] ; then
|
||||||
|
BUILD_PARAMS+=" --gen-traffic"
|
||||||
|
fi
|
||||||
|
npm run build:env -- $BUILD_PARAMS
|
||||||
- name: Publish if it was clicked manually
|
- name: Publish if it was clicked manually
|
||||||
if: ${{ github.event.inputs.buildImage == 'true' && success() }}
|
if: ${{ github.event.inputs.buildImage == 'true' && success() }}
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,4 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
build/
|
build/
|
||||||
|
# In case of building bee image, the bee source code will be cloned to this folder
|
||||||
|
bee/
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
1
contracts/PriceOracle.bytecode
Normal file
1
contracts/PriceOracle.bytecode
Normal file
@ -0,0 +1 @@
|
|||||||
|
0x608060405234801561001057600080fd5b506040516104b83803806104b883398101604081905261002f9161007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001919091556002556100a1565b60008060408385031215610090578182fd5b505080516020909101519092909150565b610408806100b06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca146100dd578063a035b1fe146100f8578063dd4899321461010f578063f2fde38b1461011857600080fd5b8063710f2dd11461008d578063715018a6146100a25780638d6cc56d146100aa5780638da5cb5b146100bd575b600080fd5b6100a061009b366004610385565b61012b565b005b6100a061019a565b6100a06100b8366004610385565b61020e565b6000546040516001600160a01b0390911681526020015b60405180910390f35b600154600254604080519283526020830191909152016100d4565b61010160015481565b6040519081526020016100d4565b61010160025481565b6100a0610126366004610357565b61026d565b6000546001600160a01b0316331461015e5760405162461bcd60e51b81526004016101559061039d565b60405180910390fd5b60028190556040518181527f0f45948e42a1e34f851df8452200e744563dae2029a99b8178ff6530458bd3df906020015b60405180910390a150565b6000546001600160a01b031633146101c45760405162461bcd60e51b81526004016101559061039d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102385760405162461bcd60e51b81526004016101559061039d565b60018190556040518181527fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a9060200161018f565b6000546001600160a01b031633146102975760405162461bcd60e51b81526004016101559061039d565b6001600160a01b0381166102fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610155565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610368578081fd5b81356001600160a01b038116811461037e578182fd5b9392505050565b600060208284031215610396578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea264697066735822122069737c178b79be7973d71a433150ff2571d211a983a7f5a5ba0f7dba3d57fd7664736f6c63430008040033
|
||||||
@ -7,6 +7,10 @@ function prefixedAddressParamToByteCode(address) {
|
|||||||
return address.substring(2).toLowerCase().padStart(64, '0')
|
return address.substring(2).toLowerCase().padStart(64, '0')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function intToByteCode(intParam) {
|
||||||
|
return Number(intParam).toString(16).padStart(64, '0')
|
||||||
|
}
|
||||||
|
|
||||||
function getSimpleSwapFactoryBin(tokenAddress) {
|
function getSimpleSwapFactoryBin(tokenAddress) {
|
||||||
const binPath = Path.join(__dirname, '..', 'contracts', 'SimpleSwapFactory.bytecode')
|
const binPath = Path.join(__dirname, '..', 'contracts', 'SimpleSwapFactory.bytecode')
|
||||||
const bin = FS.readFileSync(binPath, 'utf8').toString()
|
const bin = FS.readFileSync(binPath, 'utf8').toString()
|
||||||
@ -23,6 +27,15 @@ function getPostageStampBin(tokenAddress) {
|
|||||||
return bin + tokenAddress
|
return bin + tokenAddress
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getPriceOracleBin(price, chequeValueDeduction) {
|
||||||
|
const binPath = Path.join(__dirname, '..', 'contracts', 'PriceOracle.bytecode')
|
||||||
|
const bin = FS.readFileSync(binPath, 'utf8').toString()
|
||||||
|
const priceAbi = intToByteCode(price)
|
||||||
|
const chequeValueAbi = intToByteCode(chequeValueDeduction)
|
||||||
|
//add tokenaddress for param to the end of the bytecode
|
||||||
|
return bin + priceAbi + chequeValueAbi
|
||||||
|
}
|
||||||
|
|
||||||
/** Returns back contract hash */
|
/** Returns back contract hash */
|
||||||
async function createContract(contractName, data, creatorAccount) {
|
async function createContract(contractName, data, creatorAccount) {
|
||||||
const transaction = await web3.eth.sendTransaction({
|
const transaction = await web3.eth.sendTransaction({
|
||||||
@ -51,9 +64,20 @@ async function createPostageStampContract(erc20ContractAddress, creatorAccount)
|
|||||||
return createContract('PostageStamp', getPostageStampBin(erc20ContractAddress), creatorAccount)
|
return createContract('PostageStamp', getPostageStampBin(erc20ContractAddress), creatorAccount)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {number} price current price in PLUR per accounting unit
|
||||||
|
* @param {number} chequeValueDeduction value deducted from first received cheque from a peer in PLUR
|
||||||
|
* @param {string} creatorAccount
|
||||||
|
*/
|
||||||
|
async function createPriceOracleContract(price, chequeValueDeduction, creatorAccount) {
|
||||||
|
return createContract('PriceOracle', getPriceOracleBin(price, chequeValueDeduction), creatorAccount)
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = function (deployer, network, accounts) {
|
module.exports = function (deployer, network, accounts) {
|
||||||
deployer.deploy(ERC20PresetMinterPauser, "Swarm Token", "BZZ").then(async () => {
|
deployer.deploy(ERC20PresetMinterPauser, "Swarm Token", "BZZ").then(async () => {
|
||||||
await createSimpleSwapFactoryContract(ERC20PresetMinterPauser.address, accounts[0])
|
await createSimpleSwapFactoryContract(ERC20PresetMinterPauser.address, accounts[0])
|
||||||
await createPostageStampContract(ERC20PresetMinterPauser.address, accounts[0])
|
await createPostageStampContract(ERC20PresetMinterPauser.address, accounts[0])
|
||||||
|
await createPriceOracleContract(100000, 1, accounts[0])
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
52
package-lock.json
generated
52
package-lock.json
generated
@ -8,7 +8,7 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ethersphere/bee-js": "github:ethersphere/bee-js#bee-0.6.0",
|
"@ethersphere/bee-js": "0.12.0",
|
||||||
"@openzeppelin/contracts": "^3.1.0",
|
"@openzeppelin/contracts": "^3.1.0",
|
||||||
"axios": "^0.20.0",
|
"axios": "^0.20.0",
|
||||||
"truffle": "^5.3.5"
|
"truffle": "^5.3.5"
|
||||||
@ -1038,20 +1038,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ethersphere/bee-js": {
|
"node_modules/@ethersphere/bee-js": {
|
||||||
"version": "0.8.1",
|
"version": "0.12.0",
|
||||||
"resolved": "git+ssh://git@github.com/ethersphere/bee-js.git#94836afaebae98728a8136365a7e2fe7e9bc9526",
|
"resolved": "https://registry.npmjs.org/@ethersphere/bee-js/-/bee-js-0.12.0.tgz",
|
||||||
"license": "BSD-3-Clause",
|
"integrity": "sha512-fpZjbjIU5pxuGGo6nvVyAkEvCNSYIuoUb5fyaaIyZ+czswEkVm5oPeEfNvF703EWnar6kcAjCpAOs+dLWwLKAg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"elliptic": "^6.5.4",
|
"elliptic": "^6.5.4",
|
||||||
"isomorphic-ws": "^4.0.1",
|
"isomorphic-ws": "^4.0.1",
|
||||||
"js-sha3": "^0.8.0",
|
"js-sha3": "^0.8.0",
|
||||||
"json-bigint": "^1.0.0",
|
|
||||||
"tar-js": "^0.3.0",
|
"tar-js": "^0.3.0",
|
||||||
"ws": "^7.4.4"
|
"ws": "^7.4.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"bee": "0.6.0-17f7837-dirty",
|
"bee": "1.0.0-3a92ef5-dirty",
|
||||||
"node": ">=12.0.0",
|
"node": ">=12.0.0",
|
||||||
"npm": ">=6.0.0"
|
"npm": ">=6.0.0"
|
||||||
}
|
}
|
||||||
@ -5862,6 +5861,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.1",
|
"anymatch": "~3.1.1",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
|
"fsevents": "~2.1.2",
|
||||||
"glob-parent": "~5.1.0",
|
"glob-parent": "~5.1.0",
|
||||||
"is-binary-path": "~2.1.0",
|
"is-binary-path": "~2.1.0",
|
||||||
"is-glob": "~4.0.1",
|
"is-glob": "~4.0.1",
|
||||||
@ -7281,7 +7281,8 @@
|
|||||||
"esprima": "^4.0.1",
|
"esprima": "^4.0.1",
|
||||||
"estraverse": "^4.2.0",
|
"estraverse": "^4.2.0",
|
||||||
"esutils": "^2.0.2",
|
"esutils": "^2.0.2",
|
||||||
"optionator": "^0.8.1"
|
"optionator": "^0.8.1",
|
||||||
|
"source-map": "~0.6.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"escodegen": "bin/escodegen.js",
|
"escodegen": "bin/escodegen.js",
|
||||||
@ -7341,6 +7342,9 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||||
|
"dependencies": {
|
||||||
|
"graceful-fs": "^4.1.6"
|
||||||
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"graceful-fs": "^4.1.6"
|
"graceful-fs": "^4.1.6"
|
||||||
}
|
}
|
||||||
@ -9015,6 +9019,7 @@
|
|||||||
"dom-serializer": "~0.1.0",
|
"dom-serializer": "~0.1.0",
|
||||||
"entities": "~1.1.1",
|
"entities": "~1.1.1",
|
||||||
"htmlparser2": "~3.8.1",
|
"htmlparser2": "~3.8.1",
|
||||||
|
"jsdom": "^7.0.2",
|
||||||
"lodash": "^4.1.0"
|
"lodash": "^4.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -10176,14 +10181,6 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/json-bigint": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"bignumber.js": "^9.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/json-buffer": {
|
"node_modules/json-buffer": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
@ -10275,6 +10272,7 @@
|
|||||||
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"graceful-fs": "^4.1.6",
|
||||||
"universalify": "^2.0.0"
|
"universalify": "^2.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
@ -15747,6 +15745,9 @@
|
|||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||||
|
"dependencies": {
|
||||||
|
"graceful-fs": "^4.1.6"
|
||||||
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"graceful-fs": "^4.1.6"
|
"graceful-fs": "^4.1.6"
|
||||||
}
|
}
|
||||||
@ -16086,7 +16087,12 @@
|
|||||||
"integrity": "sha512-qdvaZzKc5WxnWS6qW7hpAo4aAphAtQfJYnr2hv7FftbycgOv7lemtIPxcd91+/3eZAIGM6hmCjbFYXgEyyaIkQ==",
|
"integrity": "sha512-qdvaZzKc5WxnWS6qW7hpAo4aAphAtQfJYnr2hv7FftbycgOv7lemtIPxcd91+/3eZAIGM6hmCjbFYXgEyyaIkQ==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@truffle/db": "^0.5.11",
|
||||||
"@truffle/debugger": "^8.0.25",
|
"@truffle/debugger": "^8.0.25",
|
||||||
|
"@truffle/preserve-fs": "^0.2.2",
|
||||||
|
"@truffle/preserve-to-buckets": "^0.2.2",
|
||||||
|
"@truffle/preserve-to-filecoin": "^0.2.2",
|
||||||
|
"@truffle/preserve-to-ipfs": "^0.2.2",
|
||||||
"app-module-path": "^2.2.0",
|
"app-module-path": "^2.2.0",
|
||||||
"mocha": "8.1.2",
|
"mocha": "8.1.2",
|
||||||
"original-require": "^1.0.1"
|
"original-require": "^1.0.1"
|
||||||
@ -16679,6 +16685,7 @@
|
|||||||
"integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==",
|
"integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@zxing/text-encoding": "0.9.0",
|
||||||
"util": "^0.12.3"
|
"util": "^0.12.3"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
@ -18571,14 +18578,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@ethersphere/bee-js": {
|
"@ethersphere/bee-js": {
|
||||||
"version": "git+ssh://git@github.com/ethersphere/bee-js.git#94836afaebae98728a8136365a7e2fe7e9bc9526",
|
"version": "0.12.0",
|
||||||
"from": "@ethersphere/bee-js@github:ethersphere/bee-js#bee-0.6.0",
|
"resolved": "https://registry.npmjs.org/@ethersphere/bee-js/-/bee-js-0.12.0.tgz",
|
||||||
|
"integrity": "sha512-fpZjbjIU5pxuGGo6nvVyAkEvCNSYIuoUb5fyaaIyZ+czswEkVm5oPeEfNvF703EWnar6kcAjCpAOs+dLWwLKAg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"elliptic": "^6.5.4",
|
"elliptic": "^6.5.4",
|
||||||
"isomorphic-ws": "^4.0.1",
|
"isomorphic-ws": "^4.0.1",
|
||||||
"js-sha3": "^0.8.0",
|
"js-sha3": "^0.8.0",
|
||||||
"json-bigint": "^1.0.0",
|
|
||||||
"tar-js": "^0.3.0",
|
"tar-js": "^0.3.0",
|
||||||
"ws": "^7.4.4"
|
"ws": "^7.4.4"
|
||||||
},
|
},
|
||||||
@ -22376,6 +22383,7 @@
|
|||||||
"integrity": "sha512-FeXxO37BLV5JRvxPmVFB91zRHalavV8H4TdQGt1/hz0AkoPymIV68OkuB+TptpjeYgatcgKPoPvPhglJkTzFQQ==",
|
"integrity": "sha512-FeXxO37BLV5JRvxPmVFB91zRHalavV8H4TdQGt1/hz0AkoPymIV68OkuB+TptpjeYgatcgKPoPvPhglJkTzFQQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"bitcore-lib": "^8.25.10",
|
||||||
"unorm": "^1.4.1"
|
"unorm": "^1.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -26496,14 +26504,6 @@
|
|||||||
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
|
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"json-bigint": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
|
|
||||||
"requires": {
|
|
||||||
"bignumber.js": "^9.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"json-buffer": {
|
"json-buffer": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
"gen:traffic": "node ./scripts/gen-traffic.js"
|
"gen:traffic": "node ./scripts/gen-traffic.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ethersphere/bee-js": "0.10.0",
|
"@ethersphere/bee-js": "0.12.0",
|
||||||
"@openzeppelin/contracts": "^3.1.0",
|
"@openzeppelin/contracts": "^3.1.0",
|
||||||
"axios": "^0.20.0",
|
"axios": "^0.20.0",
|
||||||
"truffle": "^5.3.5"
|
"truffle": "^5.3.5"
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
BEE_VERSION="0.6.0"
|
BEE_VERSION="1.0.0"
|
||||||
BLOCKCHAIN_VERSION="1.1.1"
|
BLOCKCHAIN_VERSION="1.2.0"
|
||||||
BEE_ENV_PREFIX="swarm-test"
|
BEE_ENV_PREFIX="swarm-test"
|
||||||
BEE_IMAGE_PREFIX="docker.pkg.github.com/ethersphere/bee-factory"
|
BEE_IMAGE_PREFIX="docker.pkg.github.com/ethersphere/bee-factory"
|
||||||
COMMIT_VERSION_TAG="false"
|
COMMIT_VERSION_TAG="false"
|
||||||
|
STATE_COMMIT="false"
|
||||||
|
|||||||
@ -20,6 +20,7 @@ MY_PATH=$( cd "$MY_PATH" && pwd )
|
|||||||
BEE_DIRS=$(ls -d "$MY_PATH"/bee-data-dirs/*/)
|
BEE_DIRS=$(ls -d "$MY_PATH"/bee-data-dirs/*/)
|
||||||
BEE_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BEE_VERSION)
|
BEE_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BEE_VERSION)
|
||||||
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
||||||
|
STATE_COMMIT=$("$MY_PATH/utils/env-variable-value.sh" STATE_COMMIT)
|
||||||
OFFICIAL_BEE_IMAGE="ethersphere/bee:$BEE_VERSION"
|
OFFICIAL_BEE_IMAGE="ethersphere/bee:$BEE_VERSION"
|
||||||
|
|
||||||
# Make sure we the user has permission all the files
|
# Make sure we the user has permission all the files
|
||||||
@ -30,20 +31,33 @@ sudo chmod 777 -R "$MY_PATH/bee-data-dirs"
|
|||||||
echo "Update common dockerfile"
|
echo "Update common dockerfile"
|
||||||
dockerfile "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION"
|
dockerfile "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION"
|
||||||
|
|
||||||
|
### BEE_VERSION ALTERNATIONS START
|
||||||
|
|
||||||
# If the user has been set the COMMIT_VERSION_TAG env variable
|
# If the user has been set the COMMIT_VERSION_TAG env variable
|
||||||
# The image will be built with the tag that is the bee version string
|
# The image will be built with the tag that is the bee version string
|
||||||
COMMIT_VERSION_TAG="$("$MY_PATH/utils/env-variable-value.sh" COMMIT_VERSION_TAG)"
|
COMMIT_VERSION_TAG="$("$MY_PATH/utils/env-variable-value.sh" COMMIT_VERSION_TAG)"
|
||||||
if [ "$COMMIT_VERSION_TAG" == "true" ] ; then
|
if [ "$COMMIT_VERSION_TAG" == "true" ] ; then
|
||||||
|
echo "Image version tag will be extracted from the bee version command..."
|
||||||
docker pull $OFFICIAL_BEE_IMAGE
|
docker pull $OFFICIAL_BEE_IMAGE
|
||||||
# somehow the version command's output goes to the stderr
|
# somehow the version command's output goes to the stderr
|
||||||
BEE_VERSION=$(docker run --rm $OFFICIAL_BEE_IMAGE version 2>&1)
|
BEE_VERSION=$(docker run --rm $OFFICIAL_BEE_IMAGE version 2>&1)
|
||||||
|
echo "Extracted Bee version: $BEE_VERSION"
|
||||||
"$MY_PATH/utils/build-image-tag.sh" set "$BEE_VERSION"
|
"$MY_PATH/utils/build-image-tag.sh" set "$BEE_VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$STATE_COMMIT" == 'true' ] ; then
|
||||||
|
echo "The bee image will be built with their state"
|
||||||
|
BEE_VERSION+="-stateful"
|
||||||
|
"$MY_PATH/utils/build-image-tag.sh" set "$BEE_VERSION"
|
||||||
|
echo "Stateful Bee version: $BEE_VERSION"
|
||||||
|
fi
|
||||||
|
|
||||||
|
### BEE_VERSION ALERNATIONS END
|
||||||
|
|
||||||
echo "Build Dockerfiles"
|
echo "Build Dockerfiles"
|
||||||
for BEE_DIR in $BEE_DIRS
|
for BEE_DIR in $BEE_DIRS
|
||||||
do
|
do
|
||||||
echo "$BEE_DIR"
|
echo "Build Bee version $BEE_VERSION on $BEE_DIR"
|
||||||
dockerbuild "$BEE_DIR" "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION" "$BEE_IMAGE_PREFIX"
|
dockerbuild "$BEE_DIR" "$MY_PATH/bee-data-dirs/Dockerfile" "$BEE_VERSION" "$BEE_IMAGE_PREFIX"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,6 @@ PARAMETERS:
|
|||||||
--own-image If passed, the used Docker image names will be identical as the name of the workers.
|
--own-image If passed, the used Docker image names will be identical as the name of the workers.
|
||||||
--version=x.y.z used version of Bee client.
|
--version=x.y.z used version of Bee client.
|
||||||
--detach It will not log the output of Queen node at the end of the process.
|
--detach It will not log the output of Queen node at the end of the process.
|
||||||
--payment-threshold The threshold in BZZ where you expect to get paid from your peers. (without decimals, default: 310000000000)
|
|
||||||
USAGE
|
USAGE
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -107,8 +106,8 @@ PORT_MAPS=2
|
|||||||
SWAP=true
|
SWAP=true
|
||||||
SWAP_FACTORY_ADDRESS="0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"
|
SWAP_FACTORY_ADDRESS="0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"
|
||||||
POSTAGE_STAMP_ADDRESS="0xCfEB869F69431e42cdB54A4F4f105C19C080A601"
|
POSTAGE_STAMP_ADDRESS="0xCfEB869F69431e42cdB54A4F4f105C19C080A601"
|
||||||
|
PRICE_ORACLE_ADDRESS="0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B"
|
||||||
INIT_ROOT_DATA_DIR="$MY_PATH/bee-data-dirs"
|
INIT_ROOT_DATA_DIR="$MY_PATH/bee-data-dirs"
|
||||||
PAYMENT_THRESHOLD="310000000000"
|
|
||||||
|
|
||||||
# Decide script action
|
# Decide script action
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -148,10 +147,6 @@ do
|
|||||||
PORT_MAPS="${1#*=}"
|
PORT_MAPS="${1#*=}"
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
--payment-treshold=*)
|
|
||||||
PAYMENT_THRESHOLD="${1#*=}"
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
--own-image)
|
--own-image)
|
||||||
OWN_IMAGE=true
|
OWN_IMAGE=true
|
||||||
shift 1
|
shift 1
|
||||||
@ -197,6 +192,7 @@ if [ -z "$QUEEN_CONTAINER_IN_DOCKER" ] || $EPHEMERAL ; then
|
|||||||
$EXTRA_QUEEN_PARAMS \
|
$EXTRA_QUEEN_PARAMS \
|
||||||
$DOCKER_IMAGE \
|
$DOCKER_IMAGE \
|
||||||
start \
|
start \
|
||||||
|
--warmup-time=0 \
|
||||||
--password "$BEE_PASSWORD" \
|
--password "$BEE_PASSWORD" \
|
||||||
--bootnode="$QUEEN_BOOTNODE" \
|
--bootnode="$QUEEN_BOOTNODE" \
|
||||||
--debug-api-enable \
|
--debug-api-enable \
|
||||||
@ -204,8 +200,8 @@ if [ -z "$QUEEN_CONTAINER_IN_DOCKER" ] || $EPHEMERAL ; then
|
|||||||
--swap-enable=$SWAP \
|
--swap-enable=$SWAP \
|
||||||
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
|
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
|
||||||
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
|
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
|
||||||
--payment-threshold="$PAYMENT_THRESHOLD" \
|
|
||||||
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
|
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
|
||||||
|
--price-oracle-address=$PRICE_ORACLE_ADDRESS \
|
||||||
--network-id 4020 \
|
--network-id 4020 \
|
||||||
--full-node=true \
|
--full-node=true \
|
||||||
--welcome-message="You have found the queen of the beehive..." \
|
--welcome-message="You have found the queen of the beehive..." \
|
||||||
@ -246,14 +242,15 @@ for i in $(seq 1 1 "$WORKERS"); do
|
|||||||
$EXTRA_WORKER_PARAMS \
|
$EXTRA_WORKER_PARAMS \
|
||||||
$DOCKER_IMAGE \
|
$DOCKER_IMAGE \
|
||||||
start \
|
start \
|
||||||
|
--warmup-time=0 \
|
||||||
--password "$BEE_PASSWORD" \
|
--password "$BEE_PASSWORD" \
|
||||||
--bootnode="$QUEEN_UNDERLAY_ADDRESS" \
|
--bootnode="$QUEEN_UNDERLAY_ADDRESS" \
|
||||||
--debug-api-enable \
|
--debug-api-enable \
|
||||||
--swap-enable=$SWAP \
|
--swap-enable=$SWAP \
|
||||||
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
|
--swap-endpoint="http://$SWARM_BLOCKCHAIN_NAME:9545" \
|
||||||
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
|
--swap-factory-address=$SWAP_FACTORY_ADDRESS \
|
||||||
--payment-threshold="$PAYMENT_THRESHOLD" \
|
|
||||||
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
|
--postage-stamp-address=$POSTAGE_STAMP_ADDRESS \
|
||||||
|
--price-oracle-address=$PRICE_ORACLE_ADDRESS \
|
||||||
--network-id 4020 \
|
--network-id 4020 \
|
||||||
--full-node=true \
|
--full-node=true \
|
||||||
--welcome-message="I'm just Bee worker ${i} in the beehive." \
|
--welcome-message="I'm just Bee worker ${i} in the beehive." \
|
||||||
|
|||||||
@ -5,6 +5,14 @@ MY_PATH=$( cd "$MY_PATH" && pwd )
|
|||||||
BEE_ENV_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_ENV_PREFIX)
|
BEE_ENV_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_ENV_PREFIX)
|
||||||
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
||||||
BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION)
|
BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION)
|
||||||
|
STATE_COMMIT=$("$MY_PATH/utils/env-variable-value.sh" STATE_COMMIT)
|
||||||
|
|
||||||
|
if [ "$STATE_COMMIT" == 'true' ] ; then
|
||||||
|
export COMMIT_VERSION_TAG='true'
|
||||||
|
BEE_VERSION=$("$MY_PATH/utils/build-image-tag.sh" get)
|
||||||
|
BLOCKCHAIN_VERSION+="-for-$BEE_VERSION"
|
||||||
|
echo "Blockchain will have image version: $BLOCKCHAIN_VERSION"
|
||||||
|
fi
|
||||||
|
|
||||||
NAME="$BEE_ENV_PREFIX-blockchain"
|
NAME="$BEE_ENV_PREFIX-blockchain"
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,120 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
usage() {
|
||||||
|
cat << USAGE >&2
|
||||||
|
USAGE:
|
||||||
|
$ build-environment.sh [PARAMETERS]
|
||||||
|
PARAMETERS:
|
||||||
|
--build-base-bee The base bee image will be built from source code
|
||||||
|
--base-bee-commit-hash=string the source code commit hash of the base bee; Default: HEAD; Dependency: --build-base-bee
|
||||||
|
--gen-traffic Generate traffic before bee image commit.
|
||||||
|
--gen-traffic-upload-node=string The traffic will be generated on the node under the given API URL. Default: http://locahost:1633; Dependency: --gen-traffic
|
||||||
|
--gen-traffic-checker-node=string The incoming cheques will be checked on the node under the given Debug API URL. Default: http://localhost:11635; Dependency: --gen-traffic
|
||||||
|
--cheques-count=number this amount of cheques is intended to be generated by the traffic gen. Default: 1; Dependency: --gen-traffic
|
||||||
|
USAGE
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echoerr() {
|
||||||
|
>&2 echo "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_bee() {
|
||||||
|
# Clone source code
|
||||||
|
BEE_SOURCE_PATH=$MY_PATH/../bee
|
||||||
|
if [ -d "$BEE_SOURCE_PATH" ] ; then
|
||||||
|
rm -rf "$BEE_SOURCE_PATH"
|
||||||
|
fi
|
||||||
|
mkdir "$BEE_SOURCE_PATH" && cd "$BEE_SOURCE_PATH" || exit 1
|
||||||
|
git init
|
||||||
|
git remote add origin https://github.com/ethersphere/bee.git
|
||||||
|
git fetch origin --depth=1 "$COMMIT_HASH"
|
||||||
|
git reset --hard FETCH_HEAD
|
||||||
|
# Build bee and make docker image
|
||||||
|
export BEE_VERSION=${COMMIT_HASH::7}-commit
|
||||||
|
make binary
|
||||||
|
echo "Bee image will be built with version: $BEE_VERSION"
|
||||||
|
docker build . -t ethersphere/bee:$BEE_VERSION
|
||||||
|
cd "$MY_PATH" || exit 1
|
||||||
|
# Set build image tag so that other terminal session can retrieve
|
||||||
|
"$MY_PATH/utils/build-image-tag.sh" set "$BEE_VERSION"
|
||||||
|
}
|
||||||
|
|
||||||
|
# the image label for the produced bee images in case of state commitment
|
||||||
|
stateful_image_label() {
|
||||||
|
echo "$BEE_VERSION-stateful"
|
||||||
|
}
|
||||||
|
|
||||||
MY_PATH=$(dirname "$0")
|
MY_PATH=$(dirname "$0")
|
||||||
MY_PATH=$( cd "$MY_PATH" && pwd )
|
MY_PATH=$( cd "$MY_PATH" && pwd )
|
||||||
|
COMMIT_HASH=HEAD
|
||||||
|
BUILD_BASE_BEE=false
|
||||||
|
GEN_TRAFFIC=false
|
||||||
|
GEN_TRAFFIC_UPLOAD_NODE="http://localhost:1633"
|
||||||
|
GEN_TRAFFIC_CHECKER_NODE="http://localhost:11635"
|
||||||
|
CHEQUES_COUNT=1
|
||||||
|
# Bee version here means the base bee version on which the images will be built
|
||||||
|
BEE_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BEE_VERSION)
|
||||||
|
SUPPORTED_WORKER_N=4
|
||||||
|
|
||||||
|
# handle passed options
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
--build-base-bee)
|
||||||
|
BUILD_BASE_BEE=true
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--base-bee-commit-hash=*)
|
||||||
|
COMMIT_HASH="${1#*=}"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--gen-traffic)
|
||||||
|
GEN_TRAFFIC=true
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--cheques-count=*)
|
||||||
|
CHEQUES_COUNT=${1#*=}
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--gen-traffic-upload-node=*)
|
||||||
|
GEN_TRAFFIC_UPLOAD_NODE="${1#*=}"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
--gen-traffic-checker-node=*)
|
||||||
|
GEN_TRAFFIC_CHECKER_NODE="${1#*=}"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echoerr "Unknown argument: $1"
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# cleanup for start from an empty state
|
||||||
|
"$MY_PATH/bee-cleanup.sh"
|
||||||
|
|
||||||
|
if $BUILD_BASE_BEE ; then
|
||||||
|
build_bee
|
||||||
|
fi
|
||||||
"$MY_PATH/network.sh"
|
"$MY_PATH/network.sh"
|
||||||
"$MY_PATH/blockchain.sh"
|
"$MY_PATH/blockchain.sh"
|
||||||
npm run migrate:contracts
|
npm run migrate:contracts
|
||||||
npm run supply
|
npm run supply
|
||||||
"$MY_PATH/blockchain-docker-build.sh"
|
if $GEN_TRAFFIC ; then
|
||||||
|
export STATE_COMMIT='true'
|
||||||
|
echo "Bee image with special state will be commited... traffic generation is on."
|
||||||
|
# give the permission to the bee user
|
||||||
|
BEE_DIR_PATH="$MY_PATH/bee-data-dirs/"
|
||||||
|
sudo chown 999:999 -R "$BEE_DIR_PATH"
|
||||||
|
echo "Start Bee nodes so that traffic can be generated and commited to the images"
|
||||||
|
"$MY_PATH/bee.sh" start --workers=$SUPPORTED_WORKER_N --detach
|
||||||
|
echo "Generating traffic on Bee node $GEN_TRAFFIC_UPLOAD_NODE"
|
||||||
|
echo "Run traffic generation until $CHEQUES_COUNT incoming cheques will arrive to node under Debug API $GEN_TRAFFIC_CHECKER_NODE"
|
||||||
|
npm run gen:traffic -- "$CHEQUES_COUNT" "$GEN_TRAFFIC_UPLOAD_NODE;$GEN_TRAFFIC_CHECKER_NODE"
|
||||||
|
echo "traffic has been generated, stop nodes before commit..."
|
||||||
|
"$MY_PATH/bee.sh" stop
|
||||||
|
docker container prune -f
|
||||||
|
fi
|
||||||
"$MY_PATH/bee-docker-build.sh"
|
"$MY_PATH/bee-docker-build.sh"
|
||||||
|
"$MY_PATH/blockchain-docker-build.sh"
|
||||||
|
|||||||
@ -10,7 +10,6 @@ PARAMETERS:
|
|||||||
--ephemeral create ephemeral container for bee-client. Data won't be persisted.
|
--ephemeral create ephemeral container for bee-client. Data won't be persisted.
|
||||||
--workers=number all Bee nodes in the test environment. Default is 4.
|
--workers=number all Bee nodes in the test environment. Default is 4.
|
||||||
--detach It will not log the output of Queen node at the end of the process.
|
--detach It will not log the output of Queen node at the end of the process.
|
||||||
--payment-treshold excess debt above payment threshold in BZZ where you disconnect from your peer (without decimals, default: 310000000000)
|
|
||||||
--port-maps=number map ports of the cluster nodes to the hosting machine in the following manner:
|
--port-maps=number map ports of the cluster nodes to the hosting machine in the following manner:
|
||||||
1. 1633:1635
|
1. 1633:1635
|
||||||
2. 11633:11635
|
2. 11633:11635
|
||||||
@ -44,7 +43,6 @@ WORKERS=4
|
|||||||
LOG=true
|
LOG=true
|
||||||
SWARM_BLOCKCHAIN_NAME="$BEE_ENV_PREFIX-blockchain"
|
SWARM_BLOCKCHAIN_NAME="$BEE_ENV_PREFIX-blockchain"
|
||||||
SWARM_NETWORK="$BEE_ENV_PREFIX-network"
|
SWARM_NETWORK="$BEE_ENV_PREFIX-network"
|
||||||
PAYMENT_THRESHOLD="310000000000"
|
|
||||||
PORT_MAPS=2
|
PORT_MAPS=2
|
||||||
|
|
||||||
# Decide script action
|
# Decide script action
|
||||||
@ -74,10 +72,6 @@ do
|
|||||||
WORKERS=${1#*=}
|
WORKERS=${1#*=}
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
--payment-treshold=*)
|
|
||||||
PAYMENT_THRESHOLD=${1#*=}
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
--port-maps=*)
|
--port-maps=*)
|
||||||
PORT_MAPS="${1#*=}"
|
PORT_MAPS="${1#*=}"
|
||||||
shift 1
|
shift 1
|
||||||
@ -116,7 +110,7 @@ fi
|
|||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
# Build up bee.sh parameters
|
# Build up bee.sh parameters
|
||||||
BEE_SH_ARGUMENTS="--workers=$WORKERS --own-image --payment-treshold=$PAYMENT_THRESHOLD --port-maps=$PORT_MAPS"
|
BEE_SH_ARGUMENTS="--workers=$WORKERS --own-image --port-maps=$PORT_MAPS"
|
||||||
if $EPHEMERAL ; then
|
if $EPHEMERAL ; then
|
||||||
BEE_SH_ARGUMENTS="$BEE_SH_ARGUMENTS --ephemeral"
|
BEE_SH_ARGUMENTS="$BEE_SH_ARGUMENTS --ephemeral"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
const axios = require('axios').default;
|
const axios = require('axios').default;
|
||||||
const { Bee, BeeDebug } = require('@ethersphere/bee-js');
|
const { Bee, BeeDebug } = require('@ethersphere/bee-js');
|
||||||
|
|
||||||
const SLEEP_BETWEEN_UPLOADS_MS = 500
|
const SLEEP_BETWEEN_UPLOADS_MS = 1000
|
||||||
const POSTAGE_STAMPS_AMOUNT = BigInt(10000)
|
const POSTAGE_STAMPS_AMOUNT = '10000'
|
||||||
const POSTAGE_STAMPS_DEPTH = 20
|
const POSTAGE_STAMPS_DEPTH = 32
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lehmer random number generator with seed (minstd_rand in C++11)
|
* Lehmer random number generator with seed (minstd_rand in C++11)
|
||||||
@ -73,15 +73,18 @@ async function genTrafficLoop(hosts, minCheques) {
|
|||||||
const bee = new Bee(beeApiUrl)
|
const bee = new Bee(beeApiUrl)
|
||||||
const beeDebug = new BeeDebug(beeDebugApiUrl)
|
const beeDebug = new BeeDebug(beeDebugApiUrl)
|
||||||
|
|
||||||
console.log(`Generating postage stamps on ${host}...`)
|
console.log(`Create postage stamp on ${beeApiUrl}...`)
|
||||||
const postageBatchId = await bee.createPostageBatch(POSTAGE_STAMPS_AMOUNT, POSTAGE_STAMPS_DEPTH)
|
const postageBatchId = await bee.createPostageBatch(POSTAGE_STAMPS_AMOUNT, POSTAGE_STAMPS_DEPTH)
|
||||||
console.log(`Generated ${postageBatchId} postage stamp on ${host}...`)
|
console.log(`Generated ${postageBatchId} postage stamp on ${beeApiUrl}...`)
|
||||||
|
|
||||||
return {bee, beeDebug, postageBatchId}
|
return {bee, beeDebug, postageBatchId}
|
||||||
})
|
})
|
||||||
|
|
||||||
const bees = await Promise.all(promises)
|
const bees = await Promise.all(promises)
|
||||||
|
|
||||||
|
console.log(`wait 11 secs (>10 block time) before postage stamp usages`)
|
||||||
|
await sleep(11*1000)
|
||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
await genTrafficOnOpenPorts(bees)
|
await genTrafficOnOpenPorts(bees)
|
||||||
|
|
||||||
@ -96,14 +99,13 @@ async function genTrafficLoop(hosts, minCheques) {
|
|||||||
const lastCashOutPromises = incomingCheques.map(({ peer }) => beeDebug.getLastCashoutAction(peer))
|
const lastCashOutPromises = incomingCheques.map(({ peer }) => beeDebug.getLastCashoutAction(peer))
|
||||||
const lastCashOuts = await Promise.all(lastCashOutPromises)
|
const lastCashOuts = await Promise.all(lastCashOutPromises)
|
||||||
for(const [index, lastCashOut] of lastCashOuts.entries()) {
|
for(const [index, lastCashOut] of lastCashOuts.entries()) {
|
||||||
if(lastCashOut.uncashedAmount > 0) {
|
if(BigInt(lastCashOut.uncashedAmount) > 0) {
|
||||||
uncashedCheques.push(incomingCheques[index])
|
uncashedCheques.push(incomingCheques[index])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
beesUncashedCheques.push(uncashedCheques)
|
beesUncashedCheques.push(uncashedCheques)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(beesUncashedCheques.every(uncashedCheques => uncashedCheques.length >= minCheques)) {
|
if(beesUncashedCheques.every(uncashedCheques => uncashedCheques.length >= minCheques)) {
|
||||||
console.log(`Generated at least ${minCheques} for every node on the given Debug API endpoints`,)
|
console.log(`Generated at least ${minCheques} for every node on the given Debug API endpoints`,)
|
||||||
break
|
break
|
||||||
|
|||||||
@ -2,9 +2,22 @@
|
|||||||
MY_PATH=$(dirname "$0")
|
MY_PATH=$(dirname "$0")
|
||||||
MY_PATH=$( cd "$MY_PATH" && pwd )
|
MY_PATH=$( cd "$MY_PATH" && pwd )
|
||||||
|
|
||||||
BEE_VERSION=$("$MY_PATH/utils/build-image-tag.sh" get)
|
STATE_COMMIT=$("$MY_PATH/utils/env-variable-value.sh" STATE_COMMIT)
|
||||||
BEE_ENV_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_ENV_PREFIX)
|
BUILD_IMAGE=$("$MY_PATH/utils/env-variable-value.sh" BUILD_IMAGE)
|
||||||
BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION)
|
BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION)
|
||||||
|
|
||||||
|
if [ $BUILD_IMAGE == 'true' ] || [ $STATE_COMMIT == 'true' ] ; then
|
||||||
|
# Necessary for fetch BEE_VERSION from .commit-version-tag
|
||||||
|
export COMMIT_VERSION_TAG='true'
|
||||||
|
fi
|
||||||
|
|
||||||
|
BEE_VERSION=$("$MY_PATH/utils/build-image-tag.sh" get)
|
||||||
|
|
||||||
|
if [ $STATE_COMMIT == 'true' ] ; then
|
||||||
|
BLOCKCHAIN_VERSION+="-for-$BEE_VERSION"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BEE_ENV_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_ENV_PREFIX)
|
||||||
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
||||||
BLOCKCHAIN_NAME="$BEE_ENV_PREFIX-blockchain"
|
BLOCKCHAIN_NAME="$BEE_ENV_PREFIX-blockchain"
|
||||||
BLOCKCHAIN_IMAGE_NAME="$BEE_IMAGE_PREFIX/$BLOCKCHAIN_NAME:$BLOCKCHAIN_VERSION"
|
BLOCKCHAIN_IMAGE_NAME="$BEE_IMAGE_PREFIX/$BLOCKCHAIN_NAME:$BLOCKCHAIN_VERSION"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user