OpenSim-NGC / OpenSim-Sasquatch

OpenSim Core ++. Provides Bug Fixes and some new ideas that enhance the reliability and performance of OpenSim Core Yeti.
Other
20 stars 10 forks source link

Implement a PayPal based Money module. Ideally support other payment gateways as well for real money transactions. #29

Open mdickson opened 3 years ago

mdickson commented 3 years ago

Ideally support other payment gateways as well for real money transactions.

nbtafelberg commented 1 year ago

Lone from WOlf Territories Grid here, Seconding this one.

mikelorrey commented 1 year ago

I agree. We do need this but it would be better if we had a more fully featured money module that also allowed users to connect crypto wallets like metamask to their accounts, letting grid owners to configure payment options either for their whole grid or on a region by region basis. We should not be limited only to Paypal, especially given recent behavior by Paypal to include in their TOS fines of $2500 for users having the wrong opinions.

On Wed, Feb 8, 2023 at 3:25 PM Paul Clevett @.***> wrote:

Lone from WOlf Territories Grid here, Seconding this one.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-1423194858, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OARZ23RQ2I265NVEQGNTWWP6LVANCNFSM47YGQAUQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Mike Lorrey @. @.>

International Spaceflight Museum @.*** Skype: michael.lorrey LinkedIn: https://www.linkedin.com/in/mikelorrey

nbtafelberg commented 1 year ago

I do have Gloebits on WT Grid but I would prefer it to be linked to a regulated money system. I know Paypal can be a bit nasty but it would be a great starting point because people know what it is lol.

renevega commented 1 year ago

A general comment on any payment processor that is external to point of purchase (and that includes Gloebits), is that the entirety of money transactions is based on low end to end latency of pay/buy transactions. If the latency rises above a few seconds, a plethora of delivery problems arise. A re-architecture of the money flow is needed first to address several new requirements of the payment systems. Some of these problems are not limited to virtual-to-virtual transactions costs, fee processing, maintenance of per-party small reserves to handle latency issues, refunds and/or to lower fees, fraud, claw-back, meeting regulatory requirements, etc.

mikelorrey commented 1 year ago

Gloebit does comply with FINCEN reporting, even if it has been somewhat unreliable of late. As do a number of licensed crypto exchanges. Metamask is developed by Consensys which is based in the US and licensed as a money transmitter to handle payment processing. There are issues with working with a system like that. For instance, Brazilians youtube money gets forcibly converted to Reals, whereupon their ability to spend money they earned inworld on things online is limited by IMF limits on the Brazilian economy. If opensim were to make paypal the payments system inworld, people in such countries would have no options. So its not so cut and dried. We need to consider how these decisions impact everyone who uses OS.

On Thu, Feb 9, 2023 at 2:42 AM Paul Clevett @.***> wrote:

I do have Gloebits on WT Grid but I would prefer it to be linked to a regulated money system. I know Paypal can be a bit nasty but it would be a great starting point because people know what it is lol.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-1423763106, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OAR7VPVJPKW2V2P2JXMDWWSNYBANCNFSM47YGQAUQ . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. @.>

International Spaceflight Museum @.*** Skype: michael.lorrey LinkedIn: https://www.linkedin.com/in/mikelorrey

mikelorrey commented 1 year ago

Absolutely, Rene. There are plenty of crypto platforms that have low latency on payment processing. Its not all slow like Bitcoin or Ethereum. Even Ethereum 2.0 is much faster. Hedera Hashgraph, also, look at lamina1.com, its a blockchain being specifically built for metaverse platforms, founded by Neal Stephenson.

On Thu, Feb 9, 2023 at 3:32 PM Rene Vega @.***> wrote:

A general comment on any payment processor that is external to point of purchase (and that includes Gloebits), is that the entirety of money transactions is based on low end to end latency of pay/buy transactions. If the latency rises above a few seconds, a plethora of delivery problems arise. A re-architecture of the money flow is needed first to address several new requirements of the payment systems. Some of these problems are not limited to virtual-to-virtual transactions costs, fee processing, maintenance of per-party small reserves to handle latency issues, refunds and/or to lower fees, fraud, claw-back, meeting regulatory requirements, etc.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-1424775012, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OAR3ARL2PWC6Y26LC75DWWVH6XANCNFSM47YGQAUQ . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. @.>

International Spaceflight Museum @.*** Skype: michael.lorrey LinkedIn: https://www.linkedin.com/in/mikelorrey

renevega commented 1 year ago

The part that needs fixing first is dealing with people who leave the region where the vendor is located because the pay purchase took too long. When the confirmation transaction from an external service finally arrives and triggers the money event in the script, the llGiveInventoryList function, which is often uwsed by vendor scripts, requires the avatar to be IN the region; snippet from SL docs: llGiveInventoryList: Gives inventory items to target, creating a new folder to put them in. • key target – avatar or prim UUID that is in the same region

I'm not certain why this restriction exists (need investigation), but the restriction needs to be removed first before adding other external money services. Gloebits latency problems have caused many problems.

nbtafelberg commented 1 year ago

I'm not sure you can do that much about latency. It's mainly caused by:-

a. Slow servers - people running on DYNDNS and underrated hardware. b. The grid being physically a long distance from the money provider's service c. The money provider's service is slow. d. The users viewer being physically a long way from the Grid

I'm not sure how Kitely does it but that's a really interesting situation where you get a message, you click on it then get the object delivered.

mikelorrey commented 1 year ago

Kitelys solution is that the marketplace is on the same server as the grid asset server, which should be a norm. It sells content straight out of users inventories on the asset server, and it transacts with paypal (for dollar purchases) and otherwise in KC. If the buyer is a Kitely user, its just a matter of copying UUIDs to the buyers inventory (or adding the UUID of the buyer to the permissioned list for the asset). If the buyer is giving it as a gift to an avatar account on another grid, then its just sending the asset to the destination grid asset server. Its all very streamlined and one of the things Kitely does very well. If NGC were to, say, adopt a hypergrid-centric asset system, secured as NFT assets on a blockchain (like the lamina1 blockchain that Neal Stephenson's group is developing), then your crypto wallet is also your login passport and your inventory folder, so your avatar identity would exist on chain independent of any grid, as would your money and inventory.

This would eliminate the problem of grids poofing, their customers losing their assets and avatar identities etc, or having to rely on IAR/OAR systems which are currently very fraught with the inability of retaining original creator credits and the next user permissions they mandated on their creations, hence why Opensim is distrusted by so many SL creators. A theif doesn't need copybot when they can simply OAR or IAR your stuff and reinstall it under their own name. If NGC won't go to a hypergrid-centric blockchain asset system, it should make a priority of fixing the OAR/IAR system to retain creator credit and IP rights.

With a blockchain based asset system, users have control over their avatar identities in perpetuity, creators retain their IP protection in perpetuity, and grid operators become merely landlords, not game gods. The added benefit of this sort of system is that it incentivizes grid operators to also be blockchain node operators, leveraging proof of stake to earn transaction fees on all transactions. So grid operators nodes help secure the blockchain and incetivizes them to also take IP protection more seriously.

I say this because there is a growing trend in the anti-IP segment of the opensim community where grids desperate for customers are offering god-mode to all region owners, which obviously makes next owner permissions a joke and only serves to further erode any remaining reputation of opensim with creators, not to mention being illegal under WIPO and DMCA.

On Sat, Feb 11, 2023 at 4:22 AM Paul Clevett @.***> wrote:

I'm not sure you can do that much about latency. It's mainly caused by:-

a. Slow servers - people running on DYNDNS and underrated hardware. b. The grid being physically a long distance from the money provider's service c. The money provider's service is slow. d. The users viewer being physically a long way from the Grid

I'm not sure how Kitely does it but that's a really interesting situation where you get a message, you click on it then get the object delivered.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-1426671276, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OAR7Y6XQRUI3KEWH47TLWW5K3XANCNFSM47YGQAUQ . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. @.>

International Spaceflight Museum @.*** Skype: michael.lorrey LinkedIn: https://www.linkedin.com/in/mikelorrey

renevega commented 2 months ago

Focusing on how to handle a slow delivery. Even the fastest external payment processors can be subject to a bad internet day. Inworld direct buy can time out, and inworld direct pay can either time out or just take a long time. In both cases, the avatar can leave the region where the vendor is located or worse, they can logout or hop out.

In the pay object case the transaction settlement (meaning the item is given to the payor once the money event is triggered), the current requirement is that the avatar to receive the item must be in the region. Since the currency module triggers the pay event, when it receives the transaction completed successfully event from the external payment processor, the module should check whether the avatar is present in the vendor's region, and only then trigger the pay event. That satisfies delivery assurance not withstanding a bad script or the edge case where an avatar leaves moments before the LSL script gives the item (that's a different issue.

The buy object case is similar; the transaction settlement is triggered by the currency module, and that performs a system give. I suspect the avatar must also be in the region to receive the item.

To work around this requirement, the currency module could be enhanced, if the avatar is not present in the region, to IM the avatar asking them to return to the region to receive the item. This does require the currency module get called whenever an avatar enters a region so that it can conclude triggering the pay event when the avatar arrives. The currency module could also set up a few seconds timeout callback which then IMs the avatar that delivery is taking longer than expected. Notifying avatars of a delay in delivery is important because not knowing what's going on leads to strife.

Notifications to avatars works fine for local avatars since the mechanism to route a message to a local avatar or to queuing it for delivery is in place. For HG visitors, it requires remote IM delivery and that is yet another feature that needs to be fixed.

mikelorrey commented 2 months ago

The blockchain based asset system I've been advocating for years is now possible. Convex.world is a lattice based data structure network for smart contracts with 90,000 trx/sec and 35ms trx clearance time capacity, and doesn't depend on IPFS like other smart contract blockchain networks, it has a secondary lattice that stores digital assets that are secured by the smart contracts on the main lattice. This is perfect for having a single distributed asset system for all of opensim which ensures continuity of avatar identity and inventory, independence of the avatar from a grid. So you would log into "Opensim" first, THEN choose which grid to rez on. Grids become real estate landlords and can operate nodes in the convex network to earn money from transaction fees (gas for convex smart contracts is less than a penny per transaction). With this type of asset system, utilizing perceptual hashes during uploads to compare an upload against all hashes of all prior contents allows for a means to detect copybotting, and on-chain fact-checking and juries allow for disputes over IP ownership to be resolved inexpensively without DMCA or need for real world courts. Thus, this fixes all the major problems with opensim: a) lack of avatar identity ownership/portability, b) lack of inventory portability/continuity, and c) lack of IP protection, as well as d) lack of a universal medium of exchange.

On Tue, May 7, 2024 at 5:33 PM Rene Vega @.***> wrote:

Focusing on how to handle a slow delivery. Even the fastest eternal payment processors can be subject to a bad internet day. Inworld direct buy can time out, and inworld direct pay can either time out or just take a long time. In both cases, the avatar can leave the region where the vendor is located or worse, they can logout or hop out.

In the pay object case the transaction settlement (meaning the item is given to the payor once the money event is triggered) it is presently required that the avatar to receive the item must be in the region. It is the currency module that triggers the pay event, and when it receives the transaction completed successfully even from the external payment processor, the module should check whether the avatar is present in the vendor's region, and only then trigger the pay event. That satisfies delivery assurance not withstanding a bad script or the edge case where an avatar leaves moments before the LSL script gives the item (that's a different issue.

The buy object case is similar; the transaction settlement (meaning the item is given to the buyer once the currency module triggers the system give. I suspect the avatar to receive the item must be in the region.

To work around this requirement, the currency module could be enhanced, if the avatar is not present in the region, to IM the avatar asking them to return to the region to receive the item. This does require the currency module get called whenever an avatar enters a region so that it can conclude triggering the pay event when the avatar arrives. The currency module could also set up a few seconds timeout callback which then IMs the avatar that delivery is taking longer than expected. Notifying avatars of a delay in delivery is important because not knowing what's going on leads to strife.

Notifications to avatars works fine for local avatars since the mechanism to route a message to a local avatar or to queuing it for delivery is in place. For HG visitors, it requires remote IM delivery and that is yet another feature that needs to be fixed.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-2099346331, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OAR3J7E4N7RNBEOLVRSTZBFCBZAVCNFSM47YGQAU2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBZHEZTINRTGMYQ . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. Blockchain Technology Advisor/Developer Director, International Spaceflight Museum @. This email message may contain legally privileged and/or confidential information. If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited. If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer.

renevega commented 2 months ago

Unless grids are willing to deal with FINCEN registration and the individual costs associated with doing the same, I have extreme doubt anyone would take that up. Instead, the safe approach is to use existing payment processing digital currency providers. They have the business model to meet the requirements of the major countries, and they have the means to do transfers.

Yes, there are issues about IP content protection, provenance, etc., but that is not the topic here.

mikelorrey commented 2 months ago

Ah no, because blockchain node operation does not require FINCEN registration, that gets handled by crypto exchanges. Just like grids using podex and gloebit today don't have FINCEN obligations. So you are 100% wrong.

On Tue, May 7, 2024 at 7:52 PM Rene Vega @.***> wrote:

Unless grids are willing to deal with FINCEN registration and the individual costs associated with doing the same, I have extreme doubt anyone would take that up. Instead, the safe approach is to use existing payment processing digital currency providers. They have the business model to meet the requirements of the major countries, and they have the means to do transfers.

Yes, there are issues about IP content protection, provenance, etc., but that is not the topic here.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-2099489724, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OAR5KTKQB5DITNEJYN4LZBFSKJAVCNFSM47YGQAU2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBZHE2DQOJXGI2A . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. Blockchain Technology Advisor/Developer Director, International Spaceflight Museum @. This email message may contain legally privileged and/or confidential information. If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited. If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer.

renevega commented 2 months ago

I moved the blockchain central asset concept to its own issue. It is interesting in and of itself.

mikelorrey commented 2 months ago

Thanks! FYI I authored a paper in 2010 proposing a metaverse platform be created that used a blockchain based asset system secured by smart contracts, shortly after Linden Lab seized all my SL assets, money, and accounts. It was clear back then that opensim had problems with continuity of identity and inventory. I authored this years before Ethereum was created because from 1998-2006 iI had been involved, through my work with the Extropy Institute, with Hal Finney, Nick Szabo, Ralph Merkel and Wei Dai, among others, on developing solutions to the problems of the 1990's digital currencies, solutions that eventually wound up in the Satoshi paper. Nick Szabo had been talking about smart contracts since 1992 so I was very familiar with the concepts. I sincerely believe that Opensim has the ability to be radically modernized in a number of ways, and that a hypergrid-centric asset system based on blockchain technologies (especially newer technologies like lattice) for avatar identity and inventory, as well as a medium of exchange, allows for a true Open Metaverse. This is why I cofounded the Open Metaverse Research Group (omrg.org). As for concerns about FINCEN: building a means to plug a browser based add-on wallet like metamask into an Opensim viewer not only facilitates the earlier goals, but users can easily use metamasks own fiat onramp/offramp abilities to convert a hypergrid currency token to fiat money via Metamask, leaving it entirely to metamask to handle FINCEN. Furthermore, you can easily convert a hypergrid coin to Convex, then to ETH on the Ethereum blockchain, which you can then send to Paypal, which handles both bitcoin and ethereum that you can send to others and convert to your local fiat currency. So there is no reason to be concerned about FINCEN issues.

On Wed, May 8, 2024 at 3:54 AM Rene Vega @.***> wrote:

I moved the blockchain central asset concept to its own issue. It is interesting in and of itself.

— Reply to this email directly, view it on GitHub https://github.com/OpenSim-NGC/OpenSim-Sasquatch/issues/29#issuecomment-2099971826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OARZKJR5LQTHJEAVOB23ZBHK3LAVCNFSM47YGQAU2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBZHE4TOMJYGI3A . You are receiving this because you commented.Message ID: @.***>

-- Mike Lorrey @. Blockchain Technology Advisor/Developer Director, International Spaceflight Museum @. This email message may contain legally privileged and/or confidential information. If you are not the intended recipient(s), or the employee or agent responsible for the delivery of this message to the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or use of this email message is prohibited. If you have received this message in error, please notify the sender immediately by e-mail and delete this email message from your computer.