Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smart Services #672

Closed
shargon opened this issue Apr 1, 2019 · 6 comments
Closed

Smart Services #672

shargon opened this issue Apr 1, 2019 · 6 comments
Labels
discussion Initial issue state - proposed but not yet accepted feature Type: Large changes or new features ledger Module - The ledger is our 'database', this is used to tag changes about how we store information vm New features that affect the Neo Virtual Machine or the Interop layer

Comments

@shargon
Copy link
Member

shargon commented Apr 1, 2019

Currently NEO Smart Economy counts with NEO Smart Contracts. Now, we want to introduce a new concept, "NEO Smart Services".

With this new feature, NEO Blockchain could allow a contract to be invoked without need for a human being to interact directly with it. These types of contracts will be called "Smart Services".

How it works

  • We could register the contract by SYSCALL (Install or Uninstall service) or when deploy was made. We believe deploy option is better.
  • During the generation of a block, it will be verified whether an Smart Service should be invoked as: Main('OnServiceCallback',[...])
  • For executing a Smart Service it is required to have enough GAS to cover it cost. Any user could send GAS to the contract at any time.
  • The consensus algorithm will perform the validation of all executions carried out.

The existence of Decentralized Services allows to create and manage lot of applications without human interaction.

@erikzhang
Copy link
Member

If we build a third party service (a website for example), and allow users to send transactions to the service and then store it. When the set timeout expires, the service automatically sends the transaction to the blockchain network. What is the difference between this idea and the third party service?

@erikzhang erikzhang added the discussion Initial issue state - proposed but not yet accepted label Apr 1, 2019
@shargon
Copy link
Member Author

shargon commented Apr 1, 2019

With this we don't need a third party service, you can do it everything decentralized.

@erikzhang
Copy link
Member

Decentralization is not an end. We must find the benefits of doing so before we decide to do so.

@igormcoelho
Copy link
Contributor

Good idea @shargon! I think this is related to a recent conversation with @hugbro #660

But in this sense I agree with Erik, that although I'd love this feature, extra work performed by the network should be well justified... let's think about it :)

@vncoelho
Copy link
Member

vncoelho commented Apr 2, 2019

I think this is a powerfull thing.

Consensus could have a priority list and this kind of contracts could have functions for setting min net fee.
These contracts would be like a guarantee that the blockchain is always going to process that in every block (it would be a strong censorship resistant family of txs!), consensus should always include if contract has gas and fee is enough.

These kind of automatic txs persisting looks interesting for IoT Smart Devices, the core of the future Smart and Digital Cities. ahaehauahau

These kind of txs could even be chosen to be included after all txs or before all txs in every block, which could ensure other properties and open paths for future possibilities.

@lock9 lock9 added ledger Module - The ledger is our 'database', this is used to tag changes about how we store information feature Type: Large changes or new features vm New features that affect the Neo Virtual Machine or the Interop layer and removed potential enhancement labels Aug 12, 2019
Thacryba pushed a commit to simplitech/neo that referenced this issue Feb 17, 2020
* Update v2.9.0.md

* Update v2.9.0.md
@digimbyte
Copy link

digimbyte commented Sep 11, 2023

I think this is a powerfull thing.

Consensus could have a priority list and this kind of contracts could have functions for setting min net fee. These contracts would be like a guarantee that the blockchain is always going to process that in every block (it would be a strong censorship resistant family of txs!), consensus should always include if contract has gas and fee is enough.

These kind of automatic txs persisting looks interesting for IoT Smart Devices, the core of the future Smart and Digital Cities. ahaehauahau

These kind of txs could even be chosen to be included after all txs or before all txs in every block, which could ensure other properties and open paths for future possibilities.

these are some beautiful insights into how it could be setup.
in my case, While I have a contract that is invoked by the user, since it depends on a off-chain server with an RPC hook, the issue is when that service is offline or unreachable. or something like an auction or timed event has simply resolved and the user is unable or unaware to invoke a contract method.

The blockchain must have some autonomy over itself is essential for any service if it wants to be modular, even if its a passive table and each contract has limited schedules. a simple contract ping should be enough to facilitate most use cases but passing parameters is also ideal but this can be done via storage.

to clarify, I have raised this #2903 and are looking for additional insights but no-one has put a concrete stance forward on use case and minimizing its footprint on the blockchain

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Initial issue state - proposed but not yet accepted feature Type: Large changes or new features ledger Module - The ledger is our 'database', this is used to tag changes about how we store information vm New features that affect the Neo Virtual Machine or the Interop layer
Projects
None yet
Development

No branches or pull requests

6 participants