Aion Executor

0 views
Skip to first unread message

Tordis Hurrle

unread,
Aug 5, 2024, 4:29:08 AM8/5/24
to quamsgeantleali
Inmy blockchain application, I would like to have an event triggered at a later time, hours or perhaps even days after the application has most recently received a transaction from a user. How can I create an "event" that will trigger after a certain amount of time has passed?

The Ethereum Alarm Clock service supports scheduling a contract to be called at a specified block in the future. The underlying mechanism is essentially an abstraction of incentive based solution above that allows arbitrary private key based accounts to have an incentive to execute calls on arbitrary contracts.


Part of scheduling the call is providing sufficient ether to pay for the future gas costs for executing the call, as well as for the payments that go to the executor of the call and fee to protocol creators (if specified).


The Alarm service requires a private key based Ethereum account to execute the call at the specified time. This behavior is motivated by a payment value that is associated with each scheduled call. When the target block occurs, the executor of the call is fully reimbursed for their gas costs as well as paid from the specified payment amount for their service.


This process of monitoring the Alarm service for upcoming calls and executing them can be accomplished using TimeNode. Anyone can be a TimeNode, here's comprehensive tutorial and video how to become one: How to Run a TimeNode.


The Alarm service attempts to create open market for call scheduling. The scheduler may specify any amount for both the Bounty and Fee values and those executing calls are free to choose which calls they are willing to execute.


At the time of scheduling, sufficient ether must be provided to pay for both the gas costs as well as the associated payments and fees. After execution, any remaining ether is automatically returned to the scheduler of the call.


The Alarm service is a marketplace for call scheduling and cannot provide any guarantees that a scheduled call will be executed. For the service to operate, it requires people to initiate the transactions that execute scheduled calls.


For instance, if you want to lock up money for a month until it gets returned, instead of actually having the money be sent after a month, you could have the user call a function that then returns the money.


However somebody already wrote an Ethereum Alarm Clock-contract that supports scheduling events at a later moment in time. It's decentralized as well as far as I could tell, anybody can fire scheduled events and get paid for doing so.


##Aion by ETH-Pantheon:This a system that allows arbitrary bytecode transactions to be scheduled.This means you can call a particular function in a contract with particular data at any time or block in the future.

Pros: simple, allows arbitrary bytecode, unused gas is returned, low gas consumption, trustless, the transaction fee is defined apriori, live in mainnet and test networks, nice App, transactions can be canceled without incurring in payment of any class.

Cons: centralized.




##Oraclize:This works calling a callback function after some period selected by the user, then you put the code you want to execute inside that function.

Pros: simple, live in mainnet and test networks

Cons: centralized, no arbitrary bytecode allowed, gas unused is not returned, the fee per transaction could be changed at any time, and to any value, which mean you must trust Oraclize.


There is a useful interface for this which lets you easily schedule these time-based cron jobs without having to write any smart contract code called "Gelato Ops". Disclaimer: I helped built the app :).


You could do this by keeping state of the current block number. At the start of a transaction, check if the current block number doesn't match that state variable, which implies we are on a new block. Update the state variable to be the current block number, and then process any outstanding tasks. You can store some form of list of outstanding tasks along with their earliest block number or timestamp. You can also only check for outstanding tasks every, for example, fifth block. If the target block/time is reached, the necessary code can be executed.


RemoteException wrapping System.Exception: The CSV file format for resources\Test-download.csv is invalid

at UiPath.CSV.Activities.ReadCsvFile.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)

at System.Activities.AsyncCodeActivity.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result)

at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)


A charitable trust described in Internal Revenue Code section 4947(a)(1) is a trust that is not tax exempt, all of the unexpired interests of which are devoted to one or more charitable purposes, and for which a charitable contribution deduction was allowed under a specific section of the Internal Revenue Code. A charitable trust is treated as a private foundation unless it meets the requirements for one of the exclusions that classifies it as a public charity. Thus, it is subject to the private foundation excise tax provisions and the other provisions that apply to exempt private foundations, including termination requirements and governing instrument requirements. However, a charitable trust is not treated as a charitable organization for purposes of exemption from tax. Accordingly, the trust is subject to the excise tax on its investment income under the rules that apply to taxable foundations rather than those that apply to tax-exempt foundations.


For purposes of the organizational test, when a charitable trust seeks exemption from tax as a charitable organization, the trust is considered organized on the day it first becomes subject to section 4947(a)(1). Generally, for purposes of the special and transitional rules for excise taxes discussed in this publication, a charitable trust will be considered organized on the first day it has amounts in trust for which a deduction was allowed under the Internal Revenue Code. Under this rule, a trust may be treated as a private foundation in existence on a date governing one of the applicable special and transitional rules even though the trust did not otherwise become subject to the provisions that apply to private foundations until a later date.


An estate from which the executor or administrator is required to distribute all of the net assets in trust to charitable beneficiaries will not be considered a charitable trust during the period of estate administration or settlement except for the conditions discussed in the next paragraph. A charitable trust created by a will is considered a charitable trust as of the date of death of the decedent-grantor. However, a revocable trust that becomes irrevocable upon the death of the decedent-grantor, or a trust created by will from which the trustee is required to distribute all of the net assets for, or free of trust to, charitable beneficiaries, is not considered a charitable trust for a reasonable period of settlement after becoming irrevocable. After that period, the trust is considered a charitable trust.

3a8082e126
Reply all
Reply to author
Forward
0 new messages