GithubHelp home page GithubHelp logo

hive-engine / hivesmartcontracts Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 10.0 2.31 MB

Hive-Engine node software

Home Page: https://hive-engine.com

License: MIT License

Shell 0.03% JavaScript 99.41% Python 0.56%
hive hive-engine mongodb smartcontracts

hivesmartcontracts's Introduction

hivesmartcontracts's People

Contributors

4ykw avatar ali-h avatar bennierex avatar bt-cryptomancer avatar donchate avatar eonwarped avatar forkyishere avatar harpagon210 avatar primersion avatar rishi556 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hivesmartcontracts's Issues

transferOwnership action of nft contract lacks emits

transferOwnership emits no success message. It also emits no error when the NFT doesn't exist. This makes the outcome unknowable as pass and fail are both silent. For recent transactions, checking against an engine api or attempting a transaction can confirm the outcome. This workaround is not effective for historical data

Cannot start node as non light node

When attempting to start a node for the first time syncing from genesis, with no data, and disabling light mode in the config, the following error occurs:

Can't switch from a node, which was previously a light node, to a full node. Please restore your database from a full node dump.

Add Timeout For RPC Calls

RPC calls that take longer than an arbitrary number of ms(defined in config) should be killed and the mongo query killed too with a request took too long error message

Cannot get transaction details of batched customjson actions

url: "https://engine.rishipanthee.com/blockchain"

params:
{"jsonrpc":"2.0","id":1,"method":"getTransactionInfo","params":{"txid":"0ce321d8f434c89ce0d8ef335126228b6e2d6811"}}

Customjson returns this txid 5cdf10b629cbf2d148d416d0f41aa6be7625b806. I have batched multiple actions inside the same json to get around the engine limits. When fetching the result using the transaction id received from the customjson, the above api call returns null. The call needs to be modified as txid-0, txid-1 for each batched action.

An alternate route that provides info for the entire transaction would be helpful.

Discussion: Increase Backup Witness Pay To Be 5x T20 rate

Backup witnesses get selected less often than regular witnesses, and to compensate them for that, Hive pays them at an increased rate of 5x of T20. Engine should consider doing the same as backups earn a lot less than T20 as of now.

Discussion: RPC server automatic recovery

Wanted to start a discussion to see if anyone has ideas on how to improve the reliability of the RPC server.

The recent issues with batch requests caused the behavior where the RPC server stops responding and does not auto-recover. PM2 does not detect the issue and does not restart the service automatically. The node operator has to notice there is an issue and go call pm2 restart. Not ideal when it happens in the middle of the night.

How can we make it more resilient? Can the node detect the problem and restart itself? Currently, the death of the RPC server does not crash the whole service, so PM2/docker cannot know if it needs to be restarted.

Maybe needs more investigation to understand why the server stops responding. without throwing exception

Add equivalent of Hive fill_or_kill to market contract

Idea from stoodkev:

On Hive internal market you can make a transaction like this :
https://hiveblocks.com/tx/29184b361fe8eceaaeac44d38e1dbb807d4e7ee5

Basically saying I want to sell all of this amount of HIVE, and cancel it if the result is not at least this amount of HBD
That makes it possible to define a kind of slippage on the market buy or market sell.

That would be super helpful because as it is, we can only implement "soft slippage" based on a market estimate at a given time, but we can't make sure that the slippage would be respected.

image

No Test For witness disabling

There exists no test for witness meeting missedRoundsInARow and a new witness being selected. One should be created.

Discussion: Only reward witness who produced the round

Right now, all witnesses involved in a round get rewarded. We might potentially want to change this to only pay out the one witness who produced the round, and increase the amount they get by a factor of top witness count. In the long term, it should even out to being the same amount paid out to the witnesses.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.