2.0.4002
- 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
, andchecksum256
- Ability to backup, restore, and clear vram datasets with versioning
- 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 ipfsindex.js
file - add
DSP_CONSUMER_PAYS
logic toconfig.toml
, if true throws error if DSP permission not setup - add
DEMUX_BYPASS_DATABASE_HEAD_BLOCK
toconfig.toml
, if true bypasses database last processed block as head block and usesconfig.toml
head block - add
LIQUIDX_CONTRACT
toconfig.toml
, points to EOS mainnet account that hosts theliquidx
contract - add
[sidechains]
section toconfig.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
- add
--type=local
flag tozeus deploy box
command: deploys boxes locally to~/.zeus/boxes/
instead ofIPFS
ors3
. Must use with the--update-mapping
flag. Together both flags (zeus deploy box --type=local --update-mapping
) updates themapping.json
file withfile://
.. as the pointer | thank you prcolaco - made
--type=local
and--update-mapping
flags default forzeus deploy box
command - only use invalidation of ipfs with
zeus deploy box
command when the--type
isipfs
| 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 runzeus compile
to run all - add
kill-port
npm dependency toeos-extensions
box - move
ipfs-daemon
dependency fromboxes/groups/core/build-extensions/zeus-box.json
toboxes/groups/dapp-network/dapp-services/zeus-box.json
asIPFS
is only needed with thedapp-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 runzeus 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 teststorage-dapp-service/test/storage.spec.js
- build
dapp-client
from source instead of installing by adding step tostart-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 callszeus/boxes/groups/services/ipfs-dapp-service/utils/ipfs-service/backup.js
to backup adapp::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
, andstd::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
, andstring description
- add the following actions to the ipfsconsumer example contract:
testman
- load a manifesttestclear
- incrementing table version and clear theshards
andbuckets_per_shard
paramstestbig
- tests storing an entry with achecksum256
primary key and stores auint64_t
test numbercheckbig
- checks entrychecksum256
primary key returns correct value of test numbertestmed
- tests storing an entry with auint128_t
primary key and stores auint64_t
test numbercheckmed
- checks entryuint128_t
primary key returns correct value value of test numbertestindex
- tests storing an entry with auint64_t
primary key and stores auint64_t
test numbertestfind
- checks entryuint64_t
primary key returns correct value value of test number
- add following tables to ipfsconsumer example contract:
bigentry
- uses achecksum256
primary key,medentry
- uses auint128_t
primary key - add
keysize
as parameter forzeus 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
, andIPFS cache cleaned after write
- add
vmanifest
table,getRawTreeData
andgetTreeData
functions, andwarmuprow
andcleanuprow
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
viawarmuprow
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
andzeus 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 tozeus 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 thedappservices
:dappservicex
mapping as well as/models/eosio-chains
liquidjungle.json
chain config file - add
dappservicex
(DAPP service contract for new chain) andliquidx
(DAPP service contract for EOS mainnet) - rename all instances of
local-sidechains
toeosio-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 fromtemplates-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
- 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
andcleanuprow
actions in node logic to support faster data warmups - fixes
- add fix text encode/decode in vaccounts service
- removed
read-mode = head
from defaultconfig.ini
setup for eosio node - clarified
wasm-runtime = wabt
must be used overwasm-runtime = wavm
due to bugs inwavm
- update path for
cleanup.js
script for DSPs - added usage docs for
get-table
andget-ordered-keys
- update eos 1.8.7 nodeos
- 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
- 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
Last modified 2yr ago