2.0.4002

LiquidVRAM Service

  • Backwards Compatability Warning
    • To Support new features some schema changes have taken place
    • If you already have a vram contract in production, it is recommended that you do not use the changes
    • Migration details and tools will be provided at a later time
    • To use the new features place #define USE_ADVANCED_IPFS at the start of your contract
  • New Advanced Multi Index features
    • Primary key may be uint32, uint64, uint128, and checksum256
    • Ability to backup, restore, and clear vram datasets with versioning

@liquidapps/dsp - 2.0.4002-latest

  • add DSP console log in common.js if minimum stake threshold not met for account’s DAPP stake to DSP’s service package
  • add reconnect mechanism to demux nodeos websocket
  • update eos 1.8.7 nodeos
  • add keysize support to the ipfs index.js file
  • add DSP_CONSUMER_PAYS logic to config.toml, if true throws error if DSP permission not setup
  • add DEMUX_BYPASS_DATABASE_HEAD_BLOCK to config.toml, if true bypasses database last processed block as head block and uses config.toml head block
  • add LIQUIDX_CONTRACT to config.toml, points to EOS mainnet account that hosts the liquidx contract
  • add [sidechains] section to config.toml
  • add liquidx ability to offer service to other eosio based chains while using the EOS mainnet for staking, billing, and claim rewards
  • fixes
    • add custom permissions for xcallback in generic-dapp-service-node file
    • fix cron reschedule on error, use nextTrySeconds time
    • NODEOS_SECURED, DSP_CONSUMER_PAYS, DEMUX_BYPASS_DATABASE_HEAD_BLOCK, accepted as bool or string when passed from toml, toml passes bools as strings, if set as an env variable manually, will accept as a bool

@liquidapps/zeus-cmd - 2.0.4002

  • add --type=local flag to zeus deploy box command: deploys boxes locally to ~/.zeus/boxes/ instead of IPFS or s3. Must use with the --update-mapping flag. Together both flags (zeus deploy box --type=local --update-mapping) updates the mapping.json file with file://.. as the pointer | thank you prcolaco
  • made --type=local and --update-mapping flags default for zeus deploy box command
  • only use invalidation of ipfs with zeus deploy box command when the --type is ipfs | thank you prcolaco
  • modified and fixed ipfs cleanup script to support oracle cleanups
  • allow zeus compile <CONTRACT_NAME>, zeus now allows you to only compile a contract by its name if you like, or you can run zeus compile to run all
  • add kill-port npm dependency to eos-extensions box
  • move ipfs-daemon dependency from boxes/groups/core/build-extensions/zeus-box.json to boxes/groups/dapp-network/dapp-services/zeus-box.json as IPFS is only needed with the dapp-services box
  • add utils/ipfs-service/get-table.js - Reads all vRAM tables of a smart contract and stores them with the naming syntax: ${contract_name}-${table_name}-table.json
  • add utils/ipfs-service/get-ordered-keys.js - Prints ordered vRAM table keys in ascending order account/table/scope. This can be used to iterate over the entire table client side
  • allow zeus test <CONTRACT_NAME>, zeus now allows you to only compile/test a contract by its name if you like, or you can run zeus test -c to compile/test all
  • add zeus vaccounts push-action test1v regaccount '{"vaccount":"vaccount1"}'
  • add ability to import/export LiquidAccount keys
  • implement storage dapp-client into storage service test storage-dapp-service/test/storage.spec.js
  • build dapp-client from source instead of installing by adding step to start-localenv
  • use base58 instead of default base32 for LiquidStorage’s ipfs.files.add to match ipfs service
  • add zeus test -c alias to compile all contracts, zeus test now does not compile by default
  • Implementing reset, load, and save functionality for multi-index tables
    • save: add zeus backup-table command which calls zeus/boxes/groups/services/ipfs-dapp-service/utils/ipfs-service/backup.js to backup a dapp::multi_index table
    • add manifest table to advanced_multi_index.hpp which provides the sharding details for a table, includes params: checksum256 next_available_key, uint32_t shards, uint32_t buckets_per_shard, and std::map<uint64_t,std::vector<char>> shardbuckets
    • add backup table to advanced_multi_index.hpp which provides the manifest details, includes params: uint64_t id, ipfsmultihash_t manifest_uri, time_point timestamp, and string description
    • add the following actions to the ipfsconsumer example contract:
      • testman - load a manifest
      • testclear - incrementing table version and clear the shards and buckets_per_shard params
      • testbig - tests storing an entry with a checksum256 primary key and stores a uint64_t test number
      • checkbig - checks entry checksum256 primary key returns correct value of test number
      • testmed - tests storing an entry with a uint128_t primary key and stores a uint64_t test number
      • checkmed - checks entry uint128_t primary key returns correct value value of test number
      • testindex - tests storing an entry with a uint64_t primary key and stores a uint64_t test number
      • testfind - checks entry uint64_t primary key returns correct value value of test number
    • add following tables to ipfsconsumer example contract: bigentry - uses a checksum256 primary key, medentry - uses a uint128_t primary key
    • add keysize as parameter for zeus get-table-row command, options: 64 (uint64_t), 128 (uint128_t), 256 (uint256_t) and hex (eosio::checksum256)
    • added the following unit tests: dapp::multi_index checksum256 Get Available Key, IPFS Save Manifest, IPFS Clear, IPFS Load Manifest, and IPFS cache cleaned after write
  • add vmanifest table, getRawTreeData and getTreeData functions, and warmuprow and cleanuprow service responses to _ipfs_impl.hpp file
  • added new service request types warmuprow,cleanuprow to the ipfs service
  • utilize over-eager loading in dapp::multi_index via warmuprow to reduce vRam latency by attempting to load all required data in a single action
  • update coldtoken unit tests to reflect new decrease in latency
  • moved nodeos.log to /logs folder
  • tail last 1mb of nodeos.log folder to keep upon restarting zeus test
  • flag ipfsentries as pending commit to prevent duplicate requests
    • If a contract uses a shardbucket multiple times, it will only have unique commits
    • If multiple actions in the same block (or prior to the xcommit) need to lookup the same shardbucket, there will be a single unique commit, and no additional warmups required
    • If a contract uses a delayed commit, this delayed commit won’t be overwritten by an immediate commit
  • update eosio.cdt to default to 1.6.3 if not installed
  • add zeus box create and zeus box add commands
  • add --sidechains ['{sidechain_provider:"dspnameeeeee",service_contract:"ipfservice2",nodeos_endpoint:"https://api.jungle.alohaeos.com:443",active_key:""}','{ ... another sidechain object }'] option to zeus register dapp-service-provider-package" to regprovider with sidechains
  • add zeus compile --sidechain=mychainnamee flag to compile a side chain name when using liquidx
  • use gateway port (3115) instead of service port (e.g. 13112 oracles) when running local zeus tests
  • add liquidjungle box with /models/liquid-mappings for DSP files, service files, and the dappservices:dappservicex mapping as well as /models/eosio-chains liquidjungle.json chain config file
  • add dappservicex (DAPP service contract for new chain) and liquidx (DAPP service contract for EOS mainnet)
  • rename all instances of local-sidechains to eosio-chains
  • update eos to default to 1.8.7 if not installed
  • fixes
    • update example frontend to eosjs2 and latest scatter
    • update cleanup script to work with new dsp logic
    • add CONTRACT_END syntax to example contract
    • fix cardgame unit test
      • use dapp-client for vaccounts
      • move xvinit for vaccounts to happen in migration
      • add xvinit to coldtoken contract
      • update to eosj2
    • fix chess.json to enable migration by updating contract / account
    • fix OSX zeus deploy box breaking issue
    • remove prints from vaccount code to prevent required service error
    • remove all-dapp-services box from templates-emptycontract-eos-cpp (zeus create contract)
    • Remove Babel as a dependency from zeus-cmd and all zeus boxes
    • add sub prefix to local unit test localenv files, i.e., 20-eos-local-dapp-services.js 20-a-eos-local-dapp-services.js, 20-eos-local-sidechains-dapp-services.js 20-b-eos-eosio-chains-dapp-services.js

@liquidapps/dapp-client - 2.0.4002

  • add keysize as argument for get vram row command, options: 64 (uint64_t), 128 (uint128_t), 256 (uint256_t) and hex (eosio::checksum256)
  • add support for vconfig file, warmuprow and cleanuprow actions in node logic to support faster data warmups
  • fixes
    • add fix text encode/decode in vaccounts service

docs

  • removed read-mode = head from default config.ini setup for eosio node
  • clarified wasm-runtime = wabt must be used over wasm-runtime = wavm due to bugs in wavm
  • add zeus compile <CONTRACT_NAME> syntax to zeus-getting-started
  • update path for cleanup.js script for DSPs
  • add cleanup oracle info to Cleanup IPFS and Oracle Entries
  • fixed little mistakes in vram-getting-started
  • added usage docs for get-table and get-ordered-keys
  • update chain-state-db-size-mb from 131072 to 16384 see here
  • update eos 1.8.7 nodeos
  • update cardgame link to: http://elemental.liquidapps.io/
  • update vram getting started section with new get-table-row syntax
  • add info on how to save load and clear a dapp::multi_index table
  • add macros section to developer docs
  • add docs/liquidx/add-a-chain section
  • add docs/liquidx/become-a-dsp section
  • add docs/liquidx/getting-started section
  • add docs/liquidx/use-services section

dappservices contract

  • add usagex for LiquidX and other off chain service billing LiquidStorage, LiquidLens, LiquidAuth
  • contract pays for CPU/NET/RAM associated with xactions xwarmup, xsignal, xcommit, xdcommit, xvexec, etc
  • fixes
    • add DAPP token assertion to regpkg command to ensure DAPP symbol and 4 decimals of precision used