When does Ardor smart contracts come into effect and how does it work compared to Ethereum, EOS, and Lisk?
Ardor announced they are launching smart contracts on their system and how does it work compared to the other platforms like Ethereum, EOS, and Lisk?
ethereum ardor smartcontracts lisk
add a comment |
Ardor announced they are launching smart contracts on their system and how does it work compared to the other platforms like Ethereum, EOS, and Lisk?
ethereum ardor smartcontracts lisk
2
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,etherium
,ardor
,lisk
)
– DarcyThomas
yesterday
add a comment |
Ardor announced they are launching smart contracts on their system and how does it work compared to the other platforms like Ethereum, EOS, and Lisk?
ethereum ardor smartcontracts lisk
Ardor announced they are launching smart contracts on their system and how does it work compared to the other platforms like Ethereum, EOS, and Lisk?
ethereum ardor smartcontracts lisk
ethereum ardor smartcontracts lisk
asked Jan 9 at 18:45
Patoshi パトシPatoshi パトシ
3,531105395
3,531105395
2
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,etherium
,ardor
,lisk
)
– DarcyThomas
yesterday
add a comment |
2
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,etherium
,ardor
,lisk
)
– DarcyThomas
yesterday
2
2
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,
etherium
, ardor
, lisk
)– DarcyThomas
yesterday
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,
etherium
, ardor
, lisk
)– DarcyThomas
yesterday
add a comment |
1 Answer
1
active
oldest
votes
First off, Lisk doesn't have full turing-complete smart contracts so there isn't much of a comparison on that front.
Key shortcomings of existing frameworks like Ethereum can be summarized by five challenges:
- Contract life cycle management – Find a security bug? Good luck re-deploying.
- Transaction fees – Want to use my service? First, you’ll have to buy some “gas,” in the form of cryptocurrency, to use to sponsor your transaction fees – no matter what service you are trying to use. This means there will be some crypto-tax implications for your end users.
- Integration with External Services – Want to leverage an existing database? Contracts are part of the blockchain consensus, which means they cannot interact with external systems like a cloud service or game engine.
- New coding languages – Solidity on Ethereum and RIDE on Waves are complex and relatively unknown to most experienced software developers, creating a substantial barrier to entry. There are also fewer reliable libraries and tools to leverage in the development process.
- Privacy – Looking to create verifiably replicable random numbers and store secret information? It’s either not possible, or incredibly complex.
This combination of factors has already led to numerous instances of user funds being locked up because of vulnerable smart contracts such as in the instance of the DAO and the Paritytech Wallet Freeze.
Lightweight Contracts on the Ardor platform offer a comprehensive solution to these issues. These new “stateless” contracts are written in Java, allowing developers to automate business processes on the blockchain in a comfortable coding language, while leveraging 250+ APIs to launch digital assets, marketplaces, voting systems, cloud storage solutions, messaging applications, and more. Reflecting on the issues of first-generation smart contracts, lightweight contracts address those issues of contract lifecycle management, transaction fees, integration with external systems, and random number generation as follows:
- Two Step Deployment – Contract code is deployed to child chains, such as Ignis, as a cloud data item, which stores a signed and time-stamped copy of the executable code on the blockchain, and a contract reference, which serves as a pointer from a specific contract runner account to the contract code, while defining setup parameters for the contract. This level of indirection simplifies contract upgrades- all developers need to do is deploy a new version of the contract and then gradually update existing references to it.
- External Integrations – Interfacing with external systems, like cloud services and game engines, is enabled and encouraged.
- Privacy – Random numbers can be generated in a reproducible method and secret information can be saved privately.
Lightweight Contracts are deployed on individual nodes, with optional verification and approval nodes reproducing results to ensure transparency and fairness. This provides a significant level of confidence in the output transactions of Lightweight Contracts, but what happens if a user sends a transaction to the node running a “contract runner” – and the node fails to execute the contract?
The trust problem lies at the core of all systems looking to deploy smart contracts on individual nodes. After several months of research, the developers at Jelurida finally found their solution by repurposing a lesser-known feature deployed on NXT back in 2015, known as phased transactions by hashed secrets. The basic idea is that funds sent by the user are not credited to the contract runner account. Instead, funds are held in a temporary escrow by the blockchain itself until the contract runner executes the contract and the user, after validating the resulting transaction, reveals the secret. As a result, the user transaction and the contract reply transactions are either both approved or both ignored and funds are unable to be permanently locked or stolen.
Documentation for the Ardor platform and its lightweight contracts can be found on the Ardor Learning Hub at ardordocs.jelurida.com. This response was modified from an article on CCN: https://www.ccn.com/ardor-lightweight-contracts-since-existing-smart-contracts-are-not-so-smart/
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "308"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f83522%2fwhen-does-ardor-smart-contracts-come-into-effect-and-how-does-it-work-compared-t%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
First off, Lisk doesn't have full turing-complete smart contracts so there isn't much of a comparison on that front.
Key shortcomings of existing frameworks like Ethereum can be summarized by five challenges:
- Contract life cycle management – Find a security bug? Good luck re-deploying.
- Transaction fees – Want to use my service? First, you’ll have to buy some “gas,” in the form of cryptocurrency, to use to sponsor your transaction fees – no matter what service you are trying to use. This means there will be some crypto-tax implications for your end users.
- Integration with External Services – Want to leverage an existing database? Contracts are part of the blockchain consensus, which means they cannot interact with external systems like a cloud service or game engine.
- New coding languages – Solidity on Ethereum and RIDE on Waves are complex and relatively unknown to most experienced software developers, creating a substantial barrier to entry. There are also fewer reliable libraries and tools to leverage in the development process.
- Privacy – Looking to create verifiably replicable random numbers and store secret information? It’s either not possible, or incredibly complex.
This combination of factors has already led to numerous instances of user funds being locked up because of vulnerable smart contracts such as in the instance of the DAO and the Paritytech Wallet Freeze.
Lightweight Contracts on the Ardor platform offer a comprehensive solution to these issues. These new “stateless” contracts are written in Java, allowing developers to automate business processes on the blockchain in a comfortable coding language, while leveraging 250+ APIs to launch digital assets, marketplaces, voting systems, cloud storage solutions, messaging applications, and more. Reflecting on the issues of first-generation smart contracts, lightweight contracts address those issues of contract lifecycle management, transaction fees, integration with external systems, and random number generation as follows:
- Two Step Deployment – Contract code is deployed to child chains, such as Ignis, as a cloud data item, which stores a signed and time-stamped copy of the executable code on the blockchain, and a contract reference, which serves as a pointer from a specific contract runner account to the contract code, while defining setup parameters for the contract. This level of indirection simplifies contract upgrades- all developers need to do is deploy a new version of the contract and then gradually update existing references to it.
- External Integrations – Interfacing with external systems, like cloud services and game engines, is enabled and encouraged.
- Privacy – Random numbers can be generated in a reproducible method and secret information can be saved privately.
Lightweight Contracts are deployed on individual nodes, with optional verification and approval nodes reproducing results to ensure transparency and fairness. This provides a significant level of confidence in the output transactions of Lightweight Contracts, but what happens if a user sends a transaction to the node running a “contract runner” – and the node fails to execute the contract?
The trust problem lies at the core of all systems looking to deploy smart contracts on individual nodes. After several months of research, the developers at Jelurida finally found their solution by repurposing a lesser-known feature deployed on NXT back in 2015, known as phased transactions by hashed secrets. The basic idea is that funds sent by the user are not credited to the contract runner account. Instead, funds are held in a temporary escrow by the blockchain itself until the contract runner executes the contract and the user, after validating the resulting transaction, reveals the secret. As a result, the user transaction and the contract reply transactions are either both approved or both ignored and funds are unable to be permanently locked or stolen.
Documentation for the Ardor platform and its lightweight contracts can be found on the Ardor Learning Hub at ardordocs.jelurida.com. This response was modified from an article on CCN: https://www.ccn.com/ardor-lightweight-contracts-since-existing-smart-contracts-are-not-so-smart/
add a comment |
First off, Lisk doesn't have full turing-complete smart contracts so there isn't much of a comparison on that front.
Key shortcomings of existing frameworks like Ethereum can be summarized by five challenges:
- Contract life cycle management – Find a security bug? Good luck re-deploying.
- Transaction fees – Want to use my service? First, you’ll have to buy some “gas,” in the form of cryptocurrency, to use to sponsor your transaction fees – no matter what service you are trying to use. This means there will be some crypto-tax implications for your end users.
- Integration with External Services – Want to leverage an existing database? Contracts are part of the blockchain consensus, which means they cannot interact with external systems like a cloud service or game engine.
- New coding languages – Solidity on Ethereum and RIDE on Waves are complex and relatively unknown to most experienced software developers, creating a substantial barrier to entry. There are also fewer reliable libraries and tools to leverage in the development process.
- Privacy – Looking to create verifiably replicable random numbers and store secret information? It’s either not possible, or incredibly complex.
This combination of factors has already led to numerous instances of user funds being locked up because of vulnerable smart contracts such as in the instance of the DAO and the Paritytech Wallet Freeze.
Lightweight Contracts on the Ardor platform offer a comprehensive solution to these issues. These new “stateless” contracts are written in Java, allowing developers to automate business processes on the blockchain in a comfortable coding language, while leveraging 250+ APIs to launch digital assets, marketplaces, voting systems, cloud storage solutions, messaging applications, and more. Reflecting on the issues of first-generation smart contracts, lightweight contracts address those issues of contract lifecycle management, transaction fees, integration with external systems, and random number generation as follows:
- Two Step Deployment – Contract code is deployed to child chains, such as Ignis, as a cloud data item, which stores a signed and time-stamped copy of the executable code on the blockchain, and a contract reference, which serves as a pointer from a specific contract runner account to the contract code, while defining setup parameters for the contract. This level of indirection simplifies contract upgrades- all developers need to do is deploy a new version of the contract and then gradually update existing references to it.
- External Integrations – Interfacing with external systems, like cloud services and game engines, is enabled and encouraged.
- Privacy – Random numbers can be generated in a reproducible method and secret information can be saved privately.
Lightweight Contracts are deployed on individual nodes, with optional verification and approval nodes reproducing results to ensure transparency and fairness. This provides a significant level of confidence in the output transactions of Lightweight Contracts, but what happens if a user sends a transaction to the node running a “contract runner” – and the node fails to execute the contract?
The trust problem lies at the core of all systems looking to deploy smart contracts on individual nodes. After several months of research, the developers at Jelurida finally found their solution by repurposing a lesser-known feature deployed on NXT back in 2015, known as phased transactions by hashed secrets. The basic idea is that funds sent by the user are not credited to the contract runner account. Instead, funds are held in a temporary escrow by the blockchain itself until the contract runner executes the contract and the user, after validating the resulting transaction, reveals the secret. As a result, the user transaction and the contract reply transactions are either both approved or both ignored and funds are unable to be permanently locked or stolen.
Documentation for the Ardor platform and its lightweight contracts can be found on the Ardor Learning Hub at ardordocs.jelurida.com. This response was modified from an article on CCN: https://www.ccn.com/ardor-lightweight-contracts-since-existing-smart-contracts-are-not-so-smart/
add a comment |
First off, Lisk doesn't have full turing-complete smart contracts so there isn't much of a comparison on that front.
Key shortcomings of existing frameworks like Ethereum can be summarized by five challenges:
- Contract life cycle management – Find a security bug? Good luck re-deploying.
- Transaction fees – Want to use my service? First, you’ll have to buy some “gas,” in the form of cryptocurrency, to use to sponsor your transaction fees – no matter what service you are trying to use. This means there will be some crypto-tax implications for your end users.
- Integration with External Services – Want to leverage an existing database? Contracts are part of the blockchain consensus, which means they cannot interact with external systems like a cloud service or game engine.
- New coding languages – Solidity on Ethereum and RIDE on Waves are complex and relatively unknown to most experienced software developers, creating a substantial barrier to entry. There are also fewer reliable libraries and tools to leverage in the development process.
- Privacy – Looking to create verifiably replicable random numbers and store secret information? It’s either not possible, or incredibly complex.
This combination of factors has already led to numerous instances of user funds being locked up because of vulnerable smart contracts such as in the instance of the DAO and the Paritytech Wallet Freeze.
Lightweight Contracts on the Ardor platform offer a comprehensive solution to these issues. These new “stateless” contracts are written in Java, allowing developers to automate business processes on the blockchain in a comfortable coding language, while leveraging 250+ APIs to launch digital assets, marketplaces, voting systems, cloud storage solutions, messaging applications, and more. Reflecting on the issues of first-generation smart contracts, lightweight contracts address those issues of contract lifecycle management, transaction fees, integration with external systems, and random number generation as follows:
- Two Step Deployment – Contract code is deployed to child chains, such as Ignis, as a cloud data item, which stores a signed and time-stamped copy of the executable code on the blockchain, and a contract reference, which serves as a pointer from a specific contract runner account to the contract code, while defining setup parameters for the contract. This level of indirection simplifies contract upgrades- all developers need to do is deploy a new version of the contract and then gradually update existing references to it.
- External Integrations – Interfacing with external systems, like cloud services and game engines, is enabled and encouraged.
- Privacy – Random numbers can be generated in a reproducible method and secret information can be saved privately.
Lightweight Contracts are deployed on individual nodes, with optional verification and approval nodes reproducing results to ensure transparency and fairness. This provides a significant level of confidence in the output transactions of Lightweight Contracts, but what happens if a user sends a transaction to the node running a “contract runner” – and the node fails to execute the contract?
The trust problem lies at the core of all systems looking to deploy smart contracts on individual nodes. After several months of research, the developers at Jelurida finally found their solution by repurposing a lesser-known feature deployed on NXT back in 2015, known as phased transactions by hashed secrets. The basic idea is that funds sent by the user are not credited to the contract runner account. Instead, funds are held in a temporary escrow by the blockchain itself until the contract runner executes the contract and the user, after validating the resulting transaction, reveals the secret. As a result, the user transaction and the contract reply transactions are either both approved or both ignored and funds are unable to be permanently locked or stolen.
Documentation for the Ardor platform and its lightweight contracts can be found on the Ardor Learning Hub at ardordocs.jelurida.com. This response was modified from an article on CCN: https://www.ccn.com/ardor-lightweight-contracts-since-existing-smart-contracts-are-not-so-smart/
First off, Lisk doesn't have full turing-complete smart contracts so there isn't much of a comparison on that front.
Key shortcomings of existing frameworks like Ethereum can be summarized by five challenges:
- Contract life cycle management – Find a security bug? Good luck re-deploying.
- Transaction fees – Want to use my service? First, you’ll have to buy some “gas,” in the form of cryptocurrency, to use to sponsor your transaction fees – no matter what service you are trying to use. This means there will be some crypto-tax implications for your end users.
- Integration with External Services – Want to leverage an existing database? Contracts are part of the blockchain consensus, which means they cannot interact with external systems like a cloud service or game engine.
- New coding languages – Solidity on Ethereum and RIDE on Waves are complex and relatively unknown to most experienced software developers, creating a substantial barrier to entry. There are also fewer reliable libraries and tools to leverage in the development process.
- Privacy – Looking to create verifiably replicable random numbers and store secret information? It’s either not possible, or incredibly complex.
This combination of factors has already led to numerous instances of user funds being locked up because of vulnerable smart contracts such as in the instance of the DAO and the Paritytech Wallet Freeze.
Lightweight Contracts on the Ardor platform offer a comprehensive solution to these issues. These new “stateless” contracts are written in Java, allowing developers to automate business processes on the blockchain in a comfortable coding language, while leveraging 250+ APIs to launch digital assets, marketplaces, voting systems, cloud storage solutions, messaging applications, and more. Reflecting on the issues of first-generation smart contracts, lightweight contracts address those issues of contract lifecycle management, transaction fees, integration with external systems, and random number generation as follows:
- Two Step Deployment – Contract code is deployed to child chains, such as Ignis, as a cloud data item, which stores a signed and time-stamped copy of the executable code on the blockchain, and a contract reference, which serves as a pointer from a specific contract runner account to the contract code, while defining setup parameters for the contract. This level of indirection simplifies contract upgrades- all developers need to do is deploy a new version of the contract and then gradually update existing references to it.
- External Integrations – Interfacing with external systems, like cloud services and game engines, is enabled and encouraged.
- Privacy – Random numbers can be generated in a reproducible method and secret information can be saved privately.
Lightweight Contracts are deployed on individual nodes, with optional verification and approval nodes reproducing results to ensure transparency and fairness. This provides a significant level of confidence in the output transactions of Lightweight Contracts, but what happens if a user sends a transaction to the node running a “contract runner” – and the node fails to execute the contract?
The trust problem lies at the core of all systems looking to deploy smart contracts on individual nodes. After several months of research, the developers at Jelurida finally found their solution by repurposing a lesser-known feature deployed on NXT back in 2015, known as phased transactions by hashed secrets. The basic idea is that funds sent by the user are not credited to the contract runner account. Instead, funds are held in a temporary escrow by the blockchain itself until the contract runner executes the contract and the user, after validating the resulting transaction, reveals the secret. As a result, the user transaction and the contract reply transactions are either both approved or both ignored and funds are unable to be permanently locked or stolen.
Documentation for the Ardor platform and its lightweight contracts can be found on the Ardor Learning Hub at ardordocs.jelurida.com. This response was modified from an article on CCN: https://www.ccn.com/ardor-lightweight-contracts-since-existing-smart-contracts-are-not-so-smart/
answered Jan 9 at 19:05
demetriussdemetriuss
763
763
add a comment |
add a comment |
Thanks for contributing an answer to Bitcoin Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f83522%2fwhen-does-ardor-smart-contracts-come-into-effect-and-how-does-it-work-compared-t%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
I'm voting to close this question as off-topic because it's not obviously related to Bitcoin.
– G. Maxwell
Jan 9 at 18:47
I'm voting to close this question as off-topic because it's obviously not related to Bitcoin.
– Jannes
Jan 9 at 20:55
@Jannes rather than closing this question, how would you go about getting it migrated to a more appropriate SE site?
– DarcyThomas
2 days ago
@DarcyThomas They're off topic and I couldn't care less about scams, so why would I waste my time on that?
– Jannes
2 days ago
@Jannes Why do you think this question is a scam? It seems pretty on topic to me. The question seems legit and has been tagged with the relevant altcoin tags (i.e.,
etherium
,ardor
,lisk
)– DarcyThomas
yesterday