Skip to content

Commit

Permalink
Merge branch 'v6/develop' into v6/fix/blazegraph-handling-utf-8
Browse files Browse the repository at this point in the history
  • Loading branch information
NZT48 authored Dec 25, 2023
2 parents ba0dc28 + 7ce252e commit c83c41b
Show file tree
Hide file tree
Showing 6 changed files with 225 additions and 163 deletions.
136 changes: 83 additions & 53 deletions installer/installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -253,60 +253,67 @@ install_node() {
# Change directory to ot-node/current
cd $OTNODE_DIR

#request node env
read -p "Please select node environment: (Default: Mainnet) [T]estnet [M]ainnet [E]xit " choice
# Request node env with strict input validation
while true; do
read -p "Please select node environment: (Default: Mainnet) [T]estnet [M]ainnet [E]xit " choice
case "$choice" in
[tT]* ) nodeEnv="testnet";;
[eE]* ) text_color $RED"Installer stopped by user"; exit;;
* ) nodeEnv="mainnet";;
[tT]* ) nodeEnv="testnet"; break;;
[mM]* ) nodeEnv="mainnet"; break;;
[eE]* ) text_color $RED "Installer stopped by user"; exit;;
* ) text_color $RED "Invalid choice. Please enter either [T]estnet, [M]ainnet, or [E]xit."; continue;;
esac
done
echo "NODE_ENV=$nodeEnv" >> $OTNODE_DIR/.env

#blockchains=("otp" "polygon")
#for ((i = 0; i < ${#blockchains[@]}; ++i));
#do
# read -p "Do you want to connect your node to blockchain: ${blockchains[$i]} ? [Y]Yes [N]No [E]Exit: " choice
# case "$choice" in
# [Yy]* )

# read -p "Enter your substrate operational wallet address: " SUBSTRATE_OPERATIONAL_WALLET
# echo "Substrate operational wallet address: $SUBSTRATE_OPERATIONAL_WALLET"

# read -p "Enter your substrate operational wallet private key: " SUBSTRATE_OPERATIONAL_PRIVATE_KEY
# echo "Substrate operational wallet private key: $SUBSTRATE_OPERATIONAL_PRIVATE_KEY"

read -p "Enter your EVM operational wallet address: " EVM_OPERATIONAL_WALLET
text_color $GREEN "EVM operational wallet address: $EVM_OPERATIONAL_WALLET"
# Blockchains prompt based on the selected environment
if [ "$nodeEnv" == "mainnet" ]; then
blockchain_prompt=("OriginTrail Parachain")
elif [ "$nodeEnv" == "testnet" ]; then
blockchain_prompt=("OriginTrail Parachain")
fi

read -p "Enter your EVM operational wallet private key: " EVM_OPERATIONAL_PRIVATE_KEY
text_color $GREEN "EVM operational wallet private key: $EVM_OPERATIONAL_PRIVATE_KEY"
# Ask user which blockchain to connect to with strict input validation
while true; do
read -p "Please select the blockchain you want to connect your node to:
1. ${blockchain_prompt[0]}
Your choice: " blockchain_choice

case "$blockchain_choice" in
[1]* ) blockchain="${blockchain_prompt[0]}"; break;;
[eE]* ) text_color $RED "Installer stopped by user"; exit;;
* ) text_color $RED "Invalid choice. Please enter a valid number."; continue;;
esac
done

# read -p "Enter your substrate management wallet address: " SUBSTRATE_MANAGEMENT_WALLET
# echo "Substrate management wallet address: $SUBSTRATE_MANAGEMENT_WALLET"
# Case statement to handle blockchain-specific configurations
case "$blockchain" in
"OriginTrail Parachain")
# Input wallets for the selected blockchain
read -p "Enter your EVM operational wallet address for $blockchain: " EVM_OPERATIONAL_WALLET
text_color $GREEN "EVM operational wallet address for $blockchain: $EVM_OPERATIONAL_WALLET"

# read -p "Enter your substrate management wallet private key: " SUBSTRATE_MANAGEMENT_WALLET_PRIVATE_KEY
# echo "Substrate management wallet private key: $SUBSTRATE_MANAGEMENT_WALLET_PRIVATE_KEY"
read -p "Enter your EVM operational wallet private key for $blockchain: " EVM_OPERATIONAL_PRIVATE_KEY
text_color $GREEN "EVM operational wallet private key for $blockchain: $EVM_OPERATIONAL_PRIVATE_KEY"

read -p "Enter your EVM management wallet address: " EVM_MANAGEMENT_WALLET
text_color $GREEN "EVM management wallet address: $EVM_MANAGEMENT_WALLET"
read -p "Enter your EVM management wallet address for $blockchain: " EVM_MANAGEMENT_WALLET
text_color $GREEN "EVM management wallet address for $blockchain: $EVM_MANAGEMENT_WALLET"

read -p "Enter your profile shares token name: " SHARES_TOKEN_NAME
text_color $GREEN "Profile shares token name: $SHARES_TOKEN_NAME"
read -p "Enter your profile shares token name for $blockchain: " SHARES_TOKEN_NAME
text_color $GREEN "Profile shares token name for $blockchain: $SHARES_TOKEN_NAME"

read -p "Enter your profile shares token symbol: " SHARES_TOKEN_SYMBOL
text_color $GREEN "Profile shares token name: $SHARES_TOKEN_SYMBOL"
# ;;
# [Nn]* ) ;;
# [Ee]* ) echo "Installer stopped by user"; exit;;
# * ) ((--i));echo "Please make a valid choice and try again.";;
#esac
#done
read -p "Enter your profile shares token symbol for $blockchain: " SHARES_TOKEN_SYMBOL
text_color $GREEN "Profile shares token symbol for $blockchain: $SHARES_TOKEN_SYMBOL"
;;
* )
text_color $RED "Invalid blockchain choice. Exiting installer."
exit;;
esac

perform_step npm ci --omit=dev --ignore-scripts "Executing npm install"
perform_step npm ci --omit=dev --ignore-scripts "Executing npm install"

CONFIG_DIR=$OTNODE_DIR/..
perform_step touch $CONFIG_DIR/.origintrail_noderc "Configuring node config file"
perform_step $(jq --null-input --arg tripleStore "$tripleStore" '{"logLevel": "trace", "auth": {"ipWhitelist": ["::1", "127.0.0.1"]}}' > $CONFIG_DIR/.origintrail_noderc) "Adding loglevel and auth values to node config file"
CONFIG_DIR=$OTNODE_DIR/..
perform_step touch $CONFIG_DIR/.origintrail_noderc "Configuring node config file"
perform_step $(jq --null-input --arg tripleStore "$tripleStore" '{"logLevel": "trace", "auth": {"ipWhitelist": ["::1", "127.0.0.1"]}}' > $CONFIG_DIR/.origintrail_noderc) "Adding loglevel and auth values to node config file"

perform_step $(jq --arg tripleStore "$tripleStore" --arg tripleStoreUrl "$tripleStoreUrl" '.modules.tripleStore.implementation[$tripleStore] |=
{
Expand Down Expand Up @@ -343,16 +350,38 @@ install_node() {

perform_step mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc "Adding node wallets to node config file 2/2"

perform_step $(jq --arg blockchain "otp" --arg evmOperationalWallet "$EVM_OPERATIONAL_WALLET" --arg evmOperationalWalletPrivateKey "$EVM_OPERATIONAL_PRIVATE_KEY" --arg evmManagementWallet "$EVM_MANAGEMENT_WALLET" --arg evmManagementWallet "$SHARES_TOKEN_NAME" --arg evmManagementWallet "$SHARES_TOKEN_SYMBOL" --arg sharesTokenName "$SHARES_TOKEN_NAME" --arg sharesTokenSymbol "$SHARES_TOKEN_SYMBOL" '.modules.blockchain.implementation[$blockchain].config |=
{
"evmOperationalWalletPublicKey": $evmOperationalWallet,
"evmOperationalWalletPrivateKey": $evmOperationalWalletPrivateKey,
"evmManagementWalletPublicKey": $evmManagementWallet,
"sharesTokenName": $sharesTokenName,
"sharesTokenSymbol": $sharesTokenSymbol
} + .' $CONFIG_DIR/.origintrail_noderc > $CONFIG_DIR/origintrail_noderc_tmp) "Adding node wallets to node config file 1/2"
# Set blockchain IDs based on the environment
if [ "$nodeEnv" == "mainnet" ]; then
otp_blockchain_id=2043
else
otp_blockchain_id=20430
fi

perform_step mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc "Adding node wallets to node config file 2/2"


# Single blockchain selected
if [ "$blockchain" = "OriginTrail Parachain" ]; then
blockchain="otp"
blockchain_id="$otp_blockchain_id"
fi

blockchain_arg="$blockchain:$blockchain_id"

perform_step $(jq --arg blockchain_arg "$blockchain_arg" --arg EVM_OPERATIONAL_WALLET "$EVM_OPERATIONAL_WALLET" --arg EVM_OPERATIONAL_PRIVATE_KEY "$EVM_OPERATIONAL_PRIVATE_KEY" --arg EVM_MANAGEMENT_WALLET "$EVM_MANAGEMENT_WALLET" --arg SHARES_TOKEN_NAME "$SHARES_TOKEN_NAME" --arg SHARES_TOKEN_SYMBOL "$SHARES_TOKEN_SYMBOL" '
.modules.blockchain.implementation += {
($blockchain_arg): {
"enabled": true,
"config": {
"evmOperationalWalletPublicKey": $EVM_OPERATIONAL_WALLET,
"evmOperationalWalletPrivateKey": $EVM_OPERATIONAL_PRIVATE_KEY,
"evmManagementWalletPublicKey": $EVM_MANAGEMENT_WALLET,
"sharesTokenName": $SHARES_TOKEN_NAME,
"sharesTokenSymbol": $SHARES_TOKEN_SYMBOL
}
}
}' "$CONFIG_DIR/.origintrail_noderc" > "$CONFIG_DIR/origintrail_noderc_tmp") "Adding node wallets to node config file 1/2"

perform_step mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc "Adding node wallets to node config file 2/2"

perform_step cp $OTNODE_DIR/installer/data/otnode.service /lib/systemd/system/ "Copying otnode service file"

Expand Down Expand Up @@ -449,6 +478,9 @@ install_node

header_color $BGREEN"INSTALLATION COMPLETE !"

rm -r /root/ot-node-6-release-testnet
journalctl -u otnode --output cat -fn 200

text_color $GREEN "
New aliases added:
otnode-restart
Expand All @@ -466,5 +498,3 @@ If the logs do not show and the screen hangs, press ctrl+c to exit the installat
"
read -p "Press enter to continue..."

journalctl -u otnode --output cat -fn 200
30 changes: 30 additions & 0 deletions src/constants/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,8 @@ export const CONTRACTS = {
HUB_CONTRACT: 'HubContract',
COMMIT_MANAGER_V1_U1_CONTRACT: 'CommitManagerV1U1Contract',
SERVICE_AGREEMENT_V1_CONTRACT: 'ServiceAgreementV1Contract',
PARAMETERS_STORAGE_CONTRACT: 'ParametersStorageContract',
IDENTITY_STORAGE_CONTRACT: 'IdentityStorageContract',
};

export const CONTRACT_EVENTS = {
Expand All @@ -563,6 +565,7 @@ export const CONTRACT_EVENTS = {
PROFILE: ['AskUpdated'],
COMMIT_MANAGER_V1: ['StateFinalized'],
SERVICE_AGREEMENT_V1: ['ServiceAgreementV1Extended', 'ServiceAgreementV1Terminated'],
PARAMETERS_STORAGE: ['ParameterChanged'],
};

export const NODE_ENVIRONMENTS = {
Expand All @@ -586,3 +589,30 @@ export const BLOCK_TIME_MILLIS = {
};

export const TRANSACTION_CONFIRMATIONS = 1;

export const CACHE_DATA_TYPES = {
NUMBER: 'number',
};

/**
* CACHED_FUNCTIONS:
* ContractName: {
* functionName: returnType
* }
* @type {{IdentityStorageContract: [{name: string, type: string}], ParametersStorageContract: *}}
*/
export const CACHED_FUNCTIONS = {
ParametersStorageContract: {
r0: CACHE_DATA_TYPES.NUMBER,
r1: CACHE_DATA_TYPES.NUMBER,
r2: CACHE_DATA_TYPES.NUMBER,
finalizationCommitsNumber: CACHE_DATA_TYPES.NUMBER,
updateCommitWindowDuration: CACHE_DATA_TYPES.NUMBER,
commitWindowDurationPerc: CACHE_DATA_TYPES.NUMBER,
proofWindowDurationPerc: CACHE_DATA_TYPES.NUMBER,
epochLength: CACHE_DATA_TYPES.NUMBER,
},
IdentityStorageContract: {
getIdentityId: CACHE_DATA_TYPES.NUMBER,
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,24 @@ class BidSuggestionController extends BaseController {
firstAssertionId,
hashFunctionId,
} = req.query;

this.returnResponse(res, 200, {
bidSuggestion: await this.shardingTableService.getBidSuggestion(
try {
const bidSuggestion = await this.shardingTableService.getBidSuggestion(
blockchain,
epochsNumber,
assertionSize,
contentAssetStorageAddress,
firstAssertionId,
hashFunctionId,
),
});
);

this.returnResponse(res, 200, { bidSuggestion });
} catch (error) {
this.logger.error(`Unable to get bid suggestion. Error: ${error}`);
this.returnResponse(res, 500, {
code: 500,
message: 'Unable to calculate bid suggestion',
});
}
}
}

Expand Down
41 changes: 8 additions & 33 deletions src/modules/blockchain/blockchain-module-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ class BlockchainModuleManager extends BaseModuleManager {
]);
}

setContractCallCache(blockchain, contractName, functionName, value) {
return this.callImplementationFunction(blockchain, 'setContractCallCache', [
contractName,
functionName,
value,
]);
}

getPrivateKey(blockchain) {
return this.callImplementationFunction(blockchain, 'getPrivateKey');
}
Expand All @@ -38,20 +46,12 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'getManagementKey');
}

async isHubContract(blockchain, contractAddress) {
return this.callImplementationFunction(blockchain, 'isHubContract', [contractAddress]);
}

async isAssetStorageContract(blockchain, contractAddress) {
return this.callImplementationFunction(blockchain, 'isAssetStorageContract', [
contractAddress,
]);
}

async getNodeStake(blockchain, identityId) {
return this.callImplementationFunction(blockchain, 'getNodeStake', [identityId]);
}

async getBlockNumber(blockchain) {
return this.callImplementationFunction(blockchain, 'getBlockNumber');
}
Expand Down Expand Up @@ -112,13 +112,6 @@ class BlockchainModuleManager extends BaseModuleManager {
]);
}

async getAssertionIdsLength(blockchain, assetContractAddress, tokenId) {
return this.callImplementationFunction(blockchain, 'getAssertionIdsLength', [
assetContractAddress,
tokenId,
]);
}

async getKnowledgeAssetOwner(blockchain, assetContractAddress, tokenId) {
return this.callImplementationFunction(blockchain, 'getKnowledgeAssetOwner', [
assetContractAddress,
Expand All @@ -130,10 +123,6 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'getUnfinalizedState', [tokenId]);
}

async getAssertionIssuer(blockchain, assertionId) {
return this.callImplementationFunction(blockchain, 'getAssertionIssuer', [assertionId]);
}

async getShardingTableHead(blockchain) {
return this.callImplementationFunction(blockchain, 'getShardingTableHead');
}
Expand Down Expand Up @@ -373,20 +362,6 @@ class BlockchainModuleManager extends BaseModuleManager {
return this.callImplementationFunction(blockchain, 'isHashFunction', [hashFunctionId]);
}

async isScoreFunction(blockchain, scoreFunctionId) {
return this.callImplementationFunction(blockchain, 'isScoreFunction', [scoreFunctionId]);
}

async callScoreFunction(blockchain, scoreFunctionId, hashFunctionId, peerId, keyword, stake) {
return this.callImplementationFunction(blockchain, 'callScoreFunction', [
scoreFunctionId,
hashFunctionId,
peerId,
keyword,
stake,
]);
}

async getLog2PLDSFParams(blockchain) {
return this.callImplementationFunction(blockchain, 'getLog2PLDSFParams');
}
Expand Down
Loading

0 comments on commit c83c41b

Please sign in to comment.