I don't have high level IT skills. To me if larger memo + encryption available, stellar can apply to my business right now.
I don't know how to deploy a federation server. Even though i can find someone can do this, the cost will be high, the most import is whether he is believable enough.
Maybe i can wait, several years later there will have many companies supply all kinds of easy-to-use tools.

    With regard to the reference to Corda, their documents say the following:

    5.4 Attachments and contract bytecodes
    Transactions may have a number of attachments, identified by the hash of the
    file. Attachments are stored and transmitted separately to transaction data and
    are fetched by the standard resolution flow only when the attachment has not
    previously been seen before.
    https://docs.corda.net/_static/corda-technical-whitepaper.pdf

    On https://docs.corda.net/releases/release-M7.0/tutorial-attachments.html, Corda talks about how attachments are being used, with the expectation that the node originating the attachment be able to serve the attachment to any other node, and that the requesting node maintaining a cache of the attachments. The attachment hash is the only content stored in the trasnaction. And it is up to the smart contract to manage it's own access to the attachment.

    I don't see how any of that is any different from what has already been described. I've actually been playing with core, horizon, bridge, compliance, federation on a private setup here at home. Most of the work I've been doing has been trying to determine the best way to store information about images and digital documents (content, metadata, audit trails) on a distributed ledger. While I originally thought the ledger was going to be some kind of magical place that would just take whatever I was throwing at it, storing the content in a real content management system with extra metadata on the document to catch the transacation and hash information is more than enough for my needs.

    I've been doing content management for government, insurance, shipping and manufacturing clients for about 20 years. I am managing systems that are subject to audit by agencies of multiple goverments. Honestly, most of the systems I've managed there are multiple queries to get a document, the metadata and the audit trail history. And all of these systems have a seperate subsystem for routing documents through whatever business process or use case the document supports. And there are a lot "standard use cases" where it almost doesn't matter what industry you're supporting.

    I don't really see a valid use case behind having a user's asset storage wallet have to do the work of constructing an order for someone's store. It sounds like the expectation here is that work of constructing a valid order be pushed into the wallet. And the datastore for the whole thing be moved from the organization running the store, anchor or gateway to the ledger.

    Am I mistaken in reading the original intent for the destination sysytem to only have to capture and store the transaction information and then have to go retrieve the information from ledger? Or are you talking about a custom app sitting on a stream from horizon? How many inbound transactions will either of those cases be able to support without some kind of queuing when it has to decrypt or parse the content as well as get to the back end system fulfilling the order or acting on the payload?

    There is another reason for a larger data. As we all know one difference between Ethereum and Stellar is the VM. We can consider the VM a state machine. Stellar has defined many operation codes. If we have large data, user could defined their own op codes and put the codes in the tx. This can help them to create a strong contracts. This requirement is proposed by one senior developer from an exchange.

    10k may be too large, but the current size too small. Even twitter can have 140 size. If we can have 256 characters, that will be much better. On the other side, most tx will not have memo, it would not increase the ledger too much. We would gain more benefit than the cost.

      DavidLee If you explain exactly what you're looking for we can advice better. Maybe those tools already exist or we can make something for you

      liangran I've been doing some thining about this too, but from a different perspective building on what we alredy have with bridge, compliance and federation.
      Why can't we come up with a scheme where code can be be given an account and using federation, toml or account data to find where the code is located and the inputs that it needs to run? And what it might cost to run that code. It's obviously not a dao, at least not the same way some other platforms do it, but it is almost doable today.

      The attachment convention could be used to pass messages if something more is needed (I remember some early scheme in using SMTP to pas SOAP messages, so anything is possible). Or the data or toml could point to an endpoint for a standard communication protocol. And all of this is off ledger. It wouldn't have to be on ledger till value was exchanged.
      I know I'm not describing an always-on, unstoppable worldwide computer trustlessly running code on random anonymous nodes somwehre in the ether, but I'm also describing someting that could be built on Stellar today.
      And there could actually be a business here possibly with a custom asset being used to pay for the scheme.
      I'm not saying this scheme can do what Ethereum or Hyperledger can do, but it could create a market for compute resources that could achieve an acceptable result.
      Aren't we already asking anchors and gateways to do some of this today? And I don't see the need to do anything more than pass hashes or some other kind of identifier on the ledger.

      I will admit I am still working through this in my head. So, I'm probably missing something here, nor do I necessarily think it would be easy. But I see it so that a lot of the parts are already here.

        Butch I proposed the requirement because it is the real requirement from the companies in China. Yes, we can use federation, toml or other service. But what we need is some space on-chain.

        In summary, I think increase the memo/data a bit would not increase the ledger too much but can make Stellar much more powerful. Once hundreds of companies use Stellar in their POC or production systems, Stellar will become a well known fin-tech chain. Do something to meet the requirements and Stellar can grow faster.

          liangran For my benefit, can you describe the origin of the requirement? Not that it changes anything; a requirement that can't be met is always a problem is a show stopper.
          Is this coming from government mandate, evolving industry standard or individual companies trying to interpret the direction they see products or platforms moving?
          I will admit that my understanding of the requirements in China a washed through several layers of client representatives, and is very limited in scope.

            Butch User cases,

            1. In supply chain, I need to put the tax invoice with some key info like company name in the memo. It is a common case in China not only in supply chain management. A team in a travel agency also have the same requirement.

            2. A exchange called Julang, want to put some op_code in the memo. So it can connect to their high performance trading system.

              Looking at these two different cases separately.

              In supply chain, I need to put the tax invoice with some key info like company name in the memo. It is a common case in China not only in supply chain management. A team in a travel agency also have the same requirement.

              Is the data going into the memo for the benefit of the sender or the receiver?

              What you're describing is familiar. Orders and payments move through systems; the the client information, the vendor information in the procurement system, the purchase order number, the invoice number, the payment's check number and depending on the jurisdiction, the tax information has to be tracked and linked together so the accounting systems, inventory system, and manufacturing execution system of the multiple companies and governments involved can keep track of what's owned and to whom.

              Is what you're describing putting the data structures associated with the value transfer / ledger manipulation that is meant for the non-ledger systems into the memo field for storage in the ledger. So the requirement is data storage and message passing of arbitrary data. Is this something we should expect to put in a generalized wallet application? Should any Stellar client be able to encode the appropriate data strcuture and decode the data anohter client has placed on the ledger?

              I will say I expect that our wallet applications should be able to utilize many of the features defined by SDF, but this message passing and handling and the data storage seems like a little much for an application on a phone someone uses to check their balances and pay for coffee. Or is the expectation going to be that this would be a custom application with access to a funding wallet?

              Am I missing anything in this use case?

              A exchange called Julang, want to put some op_code in the memo. So it can connect to their high performance trading system.

              I have no experience with high performance trading systems, so please let me know if anything I'm saying doesn't match up.

              The intent here seems to be about messaging--sending instructions to the trading system. Will all the op-codes be assoicated with a value transfer or ledger manipulation on Stellar? Or will there be any instances where an op-code is sent into the trading system that doesn't involve changing a balance of some asset, control of an account or the properties of account on Stellar? Is the communication channel one-way or two-way?

              As an exchange, are they "living out of Stellar" or is the integration more them being a gateway between Stellar and their trading platform?
              And again, will participating in this traffic be something that's expected of any random wallet?

              2 months later

              liangran Hi quick question: is there a way to Deposit/withdraw CNY via Ripple using stellar?
              I read a blog that you mentioned something about it.
              Actually you wrote this:
              RippleFox is an anchor in China. We issue CNY and educate people to use Stellar. People can deposit/withdraw CNY using alipay/bank card.

              We will do more in the coming days.
              1. Deposit/withdraw XRP
              2. Deposit/withdraw CNY via Ripple

              Can you please guide in how to Deposit/withdraw CNY via Ripple using stellar?

              Thanks

              a year later

              Now we use IPFS for managing some attachment in Stellar private network and problem is that our file address in IPFS is 48 Bytes. really 32 Bytes is too short for memo in stellar and we suggest to increase it to 1KB or keep it in TLV format.
              Really we need to save some evidence on Ledger and off-chain information ( Compliance Protocol and Federation and ....) is not referable.

              Thanks

                msamadi

                Raw IPFS CIDs are 32 bytes. Don't store the multi-format address, store the SHA-256 hash directly.

                  dzham
                  We have our Header and salting parameter on SHA-256 has, so we need at least 48 Bytes. So we have two options now:
                  1- Make lookup table outside and keep SHA-256 of our String in MEMO
                  2- Apply this change directly on our fork.
                  also if we need to attach more than a file in one transaction, we couldn't handle it now, So I suggest to use TLV format and define new MEMO type for it.

                  Regards,
                  Samadi

                    sbsends
                    Generally is good Idea, but why you limited to 64 Bytes ? I suggest to extend it as TLV format and define new memo type as MEMO_TLV with maximum 1K size.

                    Regards,
                    Samadi

                    msamadi also if we need to attach more than a file in one transaction, we couldn't handle it now, So I suggest to use TLV format and define new MEMO type for it.

                    You can create a directory with all the files in, and send the CID of the directory.

                      dzham
                      It's good Idea, but force us to manage our files in specific structure that I don't like it.

                        msamadi

                        It's how IPFS deals with file hierarchies. A directory node is basically just a file that lists the filenames + multi-hashes of its content. Not exactly rocket science.

                        Unless you make the cost of adding a memo dependent on its size, I don't see 1024 byte memos as feasible. People will just abuse it, since IPFS memos would be up to 32 times cheaper than all the other types. Everyone would just use IPFS memos for anything, and then not have to worry about sizes "at all" anymore.

                          dzham

                          What's meaning of abuse ? customer needs to keep some information on-chain and it should be useful as evidence of financial article. If we want to keep all information (bigger than 32 bytes ) on IPFS, why we should use DLT? as I know IPFS couldn't provide enough trust.
                          Also IPFS has own overhead and increase operational cost.

                            I assume abuse mostly refer to spam / unconscious use of the network functionalities and is related to its cheapness: What is cheap is abundant and we're quick to waste resources right?

                            I think bigger data fields are out of question due to Stellar ambitions: not every project do it the same way but basically we don't know how to combine together low fees, high transaction output, wide adoption and large storage capabilities. Some technologies like sharding may end up giving us a solution but we're not here yet.

                            But clearly Stellar needs an on-chain messaging system so at least people can use their custom network as a decentralized database. On main-net you'd pay one basefee/64b to pack data so it's unlikely to generate as much abuse than other functionalities such as trade or payment which are cheaper. But if people are willing to pay for it then why not let them do so? I mean, how is it less legit than eating space for trading offers, payment, asset issuance and so on?