Search content
Sort by

Showing 20 of 434 results by sdp
Post
Topic
Board Wallet software
Topic OP
Use Once Addresses from the Daemon
by
sdp
on 20/11/2024, 14:05:21 UTC
This feature idea is for the context of daemon mode of any Bitcoin wallet that accepts connections via RPC.  This includes the standard node that accepts connections but also Electrum does this also.

I am not sure about BitcoinD, but Electrum can give other software the capability to ask for and recognize the receipt of Bitcoin via RPC and direct calls to the command line but while waiting for a payment, a similar program will get the same new address, and the donation address that came from that wallet some time ago may also be the same.

Here I refer to "wallet daemon" as any wallet that can accept connections for wallet functionality to other software.

An external client (that is a program that is allowed to connect to it, via for example TCP,  should be able to request an new address and to simultaneously have it internally marked within the wallet daemon process in a way so that future requests for new addresses never include this address.  At the same time, requests to watch the address should be still available.

Another way of expressing this idea is that the new address would be a secret known only by the wallet daemon, and the particular client program that asked for it and whoever or whatever the client program shares it with presumably whoever is being asked to pay.

Perhaps some of you know of several wallets that already do this. I think these changes require a kind of wallet that needs to be backed up more than once, I doubt a change like this would be paletable to the developer of Electrum.  So please tell me which wallet daemon's have this feature if one exists.

sdp
Post
Topic
Board Development & Technical Discussion
Merits 5 from 1 user
Re: Pure TypeScript library to operate with sats (zero-dependencies)
by
sdp
on 16/09/2023, 15:02:43 UTC
⭐ Merited by ETFbitcoin (5)
I did quick test with few inscription and it seems to works properly. So here are few of my thought,
1. Is it right to assume your library only have function to look for sat properties of Ordinals inscription based on one of known value (e.g. decimal)?
2. It annoys me fromDecimal require me to enter string rather than decimal.

Code:
> Sat.fromDecimal(313225.1127208201)
<repl>.ts:29:17 - error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.

29 Sat.fromDecimal(313225.1127208201)
> Sat.fromDecimal("313225.1127208201")
Sat { n: 1308063627208201 }

3. Function fromString with parameter sat initially confuse me. Different name such as fromSat or fromSatNumber probably would be better.

Numeric values with decimals are not used when there is no tolerance for error because of the standard way of storing numbers in memory result in values being encoded into a binary fashion.  That means a number is represented as a sum of fractions once or zero times from the set { 1, 1/2, 2, 1/4, 4, 1/8, 8, ... }.  Most of the time, you can not sum to a given terminating decimal with a finite number of these but you can normally get close enough.  This is fine for working with numbers for science where a small error factor is understood and accounted for.  We like to be perfectly precise which is why APIs work with sats rather than BTCs.   So if  you are working with fraction values, as a string, you wont lose information when encoding.
Post
Topic
Board Development & Technical Discussion
Merits 22 from 6 users
Topic OP
Multi-User transaction with Bitcoin.
by
sdp
on 02/11/2022, 12:51:53 UTC
⭐ Merited by hugeblack (10) ,Welsh (6) ,dkbit98 (2) ,pooya87 (2) ,ETFbitcoin (1) ,DdmrDdmr (1)
In my application I have this idea for a some large number of people who don't completely trust each other, endevor to buy something collectively, like a plot of land that would get subdivided into lots for themselves. 

Each of the users make a payment to the society (a n of n multisignature wallet) and in the end payments are made out of it for purchase of the common property land and then implementation of services. 


The most simple non-trivial case is a 2 of 2.  Let's make up two users Alice and Bob.  Can I create a payment transaction from both Alice and Bob, so that both of them pay 0.1 mBTC for the society payment but if unless both sign (pay) then neither pays into it?  Is there a wallet that does this kind of thing already?

I think this could be a good way to prevent people from running away with funds.  I think the upper limit for n is 15 in Bitcoin.  I have a copy of the private keys for some test wallets.  Send me a private message if you wish to participate in trying to do this.  We should only use popular clients like Electrum, core or Armory.  I don't think I should be writing custom wallet software!

Perhaps this can be done with the CSV import mechanism in Electrum.  Maybe there is something we can use from the RPC of one of these clients.

Post
Topic
Board Development & Technical Discussion
Re: Bitcoin Core wallet.dat file containing 3.5 BTC + Password Hint
by
sdp
on 02/11/2022, 10:25:59 UTC
So, did you get the help you needed?
Post
Topic
Board Development & Technical Discussion
Re: Why did satoshi develop bitcoin in windows?
by
sdp
on 02/11/2022, 10:19:19 UTC
This question cannot be answered well with the original author missing.  What can be answered is why you would develop on Windows in 2008 (as apposed to Minix, SCO, Linux, GNU Hurd?). 

Windows has and had:
* The best market penetration.   To get more users of an application you can write it on Windows
* Wide range of development tools and software for development.

Rather than use Microsoft only frameworks, it takes some effort to use portable libraries and frameworks.  These days, Android is the new Windows.
Post
Topic
Board Goods
Topic OP
Marketplace Application Program with BTC?
by
sdp
on 19/10/2022, 15:46:15 UTC
Is there a Bitcoin - P2P Marketplace application?  One that runs on its own and connects to peers rather than relying on some central server?  Really the Marketplace board is not all that great of an interface for buying things online.  I'd lilke an interface that looks like e-bay but with BTC prices.  Some escrow system would be good too.  I'm not asking much, just a pointer to it if it already exists.
Post
Topic
Board Project Development
Re: Introducing Cheap Bitcoin Notes
by
sdp
on 11/06/2022, 00:18:55 UTC
All valid points.  Just like when you buy Bitcoin on some centralized exchange, you trust there is actually that much Bitcoin in the exchange's underlying wallet.  If you can pay 224 satoshis for say a 50 µBTC bill (5,000 sats) then you need to charge more than the tx fee, perhaps 300 sats to the buyer.  There would have to be a cost to create the bill.  The transaction fee happens once and then you can have five years of transactions.  You can verify the issuer has not spent the coins.  A little bit like banks would issue dollars before the Federal Reserve act came to be.

The lightning requires internet for transactions.  With these bills, transactions can be anonymous and offline and free apart from the one-time cost.

The issuer needs to be trusted for these to work as money..  The money could be for small communities that don't want to use a LETS system or fiat but don't want the expense of smart phones or PCs. The use of these should be for ready spending rather than saving but will stay fixed with respect to the Bitcoin price.  We already pay per transaction for Bitcoin everytime it changes hands when using it online so paying up front one transaction to give a community zero fees seems like a group of people could agree to contribute to get these things.


Post
Topic
Board Project Development
Re: Introducing The Bitcoin Note: Physical Bitcoin that Looks and Feels Like Cash
by
sdp
on 10/06/2022, 14:43:34 UTC
Please comment on my Cheap Notes concept.  I think you could integrate some ideas.  I don't think 100 µBTC or 1 mBTC bills justify a NFC chip but the two redeem periods are a concept which I think is good.

https://bitcointalk.org/index.php?topic=5402081.0

The user still has to trust the issuer, but the same is true about centralized exchanges....
Post
Topic
Board Project Development
Merits 1 from 1 user
Topic OP
Introducing Cheap Bitcoin Notes
by
sdp
on 10/06/2022, 12:19:20 UTC
⭐ Merited by dkbit98 (1)

                                                                          A Cheaper Bitcoin Note Project
                                                                                 =============

+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
|  Yi MILLIBITCOIN                                                                                                                       ONE MILLIBITCOIN   |
|                                                  Redeem with Issuer After :   November 6th, 2025                                                          |
|              +-------------------------+                                                                                      +---------------------+     |
|              |XX    X         X     XX |                                                                                      | [X]            [X]  |     |
|              |       XX        XX      |                             1                                                        |         X       X   |     |
|              |   XX    XX        X     |                     millibitcoin                                                     |   X      X         X|     |
|              |   X            X        |                                                                                      |                     |     |
|              | XX        X  X     X    |                                                                                      |   [X]               |     |
|              +-------------------------+         Redeem Alone After:   November 6th, 2030                                     +-------------------- +     |
|                                                                                                                                                           |
|                     Private         Key                                                                                                    Address        |
|                                                                                                                                                           |
|  Un MILLIBITCOIN                                                                                                                         EK MILLIBITCOIN  |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------+


Bitcoin's massive acceptance of the new unit of account, is finally manifest.  While many rush to sign up to exchanges to get theirs there is concern that Bitcoin is lacking in three important qualities:
1.  Darkness: Transactions sent without revealing who or how much. 
2.  Lower Transaction Fees.
3. Offchain transactions.

Changes in the Bitcoin Protocol in order to fix either of these issues has been tried but each attempt to do so either results in a forgotten source code fork or alt-coins (Monero, Bitcoin Dark, Dash, Bitcoin Cash).  These alt-coins must compete with name recognition and network effects of the currency when the distinct product is their improved payment system.

Far from sending standard amounts in multiple transactions to obscure the amounts, bitcoin transactions are easily identified by the amount sent.  In addition, bitcoin can be traced as it moves from address to address.  Most people having to trade from one crypto to another will have their address linked to their identity.  So much for anonymity and so much for darkness.

Because the bitcoin protocol requires the transaction specify where the currency output comes from, so even when sent to the same address it is more expensive to send when they had come in smaller increments rather than a single lump sum.  At the most extreme end of the scale it typically costs 85,120 satoshis (851 µBTC) to send transaction on the next block and only 224 satoshis if you are willing to wait days and be okay if it eventually fails.

When sending large amounts the transaction fees make up a smaller percentage.  It turns out that if paying the minimal fee on a transaction 50µBTC, the fee would only be 0.5% of the value of the funds sent.

Enter Bitcoin Note. Bitcoins are sent to a script which is a combination of time-locked, multi-signature and single signature. The user gets to use the coins as a physical bill and is unable to transfer funds from it.  It can only be transferred with the help of the issuer and the private key on the bill.  The private key is unique to each bill.  In order to protect the issuer from extortion, he must destroy the copy of the private key on the bills before they leave the shop.

The issuer also has another private key.  In combination with the private key of the issuer and the private key on the bill they can redeem the money after the redemption date with this combination.  There is an expiry date, after which the holder, of the private key on the bill can unilaterally move the underlying coins on the block-chain.  It is important to take your bills to the issuer prior to that date so anyone who ever had the bill doesn’t move the backing block-chain BTC.


Measures against counterfeiting

These Bitcoin notes should be used between people who know each other.  Down the road the issuer after spending his bitcoin notes at a shop, may take them back as change for some later purchase or there maybe more cyclical economies where money moves around in a circle without ever needing to be changed into fiat.

The issuer can create bills that have a torn side.  A serial number match with the torn bill can be used to validate the bill is the original and not a photocopy.  Other more involved forms of measures against counterfeit can include things found in regular fiat bills and they raise the bar in terms of what a counterfeiter has to do, what equipment one must buy, etcetera.

Suggested Bill Values used

Paper currency in bitcoin based on purchasing what you typically need at a clothing shop or electronics store, it seems that 1 mBTC is a good upper size.  Larger than that, you might as well just keep things on chain.  These days, 100 µBTC is an amount that would cost about 2.5% of its value for an online transaction.  Creating a special transaction for this amount once and putting it on a Bitcoin note, could allow zero fee transaction to happen with this note limited only by the ability to pass it between one user and another.
Scripting

The script for a single issuer and a private key for each note:

ki ->  issuer's public key (private key not on the paper)
kp -> paper public key whose private key is on the paper

<sig1> := (signature of the issuer)     
<pubkey> := k1
<sig2> := <sig>  (signature for the key that's on the paper)

In square brackets the stack of the Bitcoin Virtual Machine is placed next to the op codes to aid better understanding.

Script Template
OP_2
k1
k2
OP_2
OP_DEPTH
OP_2                 
IF_EQUAL             
OP_IF
  OP_2               
  <ki>               
  <kp>               
  OP_2               
  <redeem with issuer date>           
  OP_check_locktimeverify
  op_checkmultisigverify
OP_ELSE [sig]
  <k2>
  <redeem alone date>               
  check lock time verify
  drop                 
  dup       
  op_hash160
  <hash(k2)>
  op_equalverify
  op_checksig
OP_ENDIF
The script can be redeemed with the following inputs:
During the redeem period you can redeem them with:
<Issuer SIG>
<Another SIG using the private key on the note>
2
<Issuer Public Key>
<Paper Public Key>


During the post-redeem with issuer period it can be redeemed by anyone who has the private key.
<SIG>


At the start the stack is either [sig] or [sig1 sig2].

OP
Redeemable with issuer
Redeemable alone (single sig)

0 sigi sigp 2 ki kp 2
sigp
OP_DEPTH
... kp 2 => ... kp 2 7
Sigp => sigp 1
OP_7
... 2 7 => ... 2 7 7
Sigp 1 => sigp 1 7
OP_EQUAL
... 7 7 => 1
Sig 1 7 => sig 0
OP_IF
... kp 2 1 => ... kp 2
sig 0 => sig
  OP_DROP
... ki kp 2 => ... ki kp

  OP_2DUP
... ki kp => ki kp ki kp

  OP_HASH160
... ki kp => ki hash160(kp)

  PUSH hash160(kp)
... => ... hash160(kp)

  OP_EQUALVERIFY
... hash160(kp) hash160(kp) => ...

  OP_HASH160
... ki kp ki  => ki kp hash160(ki)

  PUSH hash160(ki)
... => ... hash160(ki)

  OP_EQUALVERIFY
... hash160(ki) hash160(ki) => ...

  OP_2
0 sigi sigp 2 ki kp => 0 sigi sigp 2 ki kp 2

  OP_3
0 sigi sigp 2 ki kp 2 => 0 sigi sigp 2 ki kp 2 3

  OP_PICK
... ki kp 2 3 => ki kp 2 2

  OP_EQUALVERIFY
0 sigi sigp 2 ki kp 2 2 => 0 sigi sigp 2 ki kp

  OP_2
0 sigi sigp 2 ki kp 2




  PUSH redeem

... kp 2 => ... kp 2 redeem
  OP_CHECKLOCKTIMEVERIFY

 ... => ...
  OP_DROP

... 2 expiry => 2



  OP_CHECKMULTISIGVERIFY
... 0 sig1 sig2 2 ki kp 2 => []

OP_ELSE


  PUSH kp

sig => sig kp
  PUSH expiry

sig kp => sig kp expiry



  OP_CHECKLOCKTIMEVERIFY


  OP_DROP

sig kp expiry => sig kp
  OP_DUP

sig kp => sig kp kp
  OP_HASH160

... kp kp => ... kp hash160(kp)
  OP_PUSH hash160(kp)

... kp => ... kp hash160(kp)
  OP_EQUALVERIFY

... hash160(kp) hash160(kp) => ...
  OP_CHECKSIGVERIFY

sig kp => []
OP_ENDIF





Seed creation phrase (Do not use for real (mainnet) funds!!!):

‘general image wine slam knee auction boat carry then adapt huge captain’

Bitcoin testnet faucet: https://testnet.help/
Bitcoin testnet address: tb1qq2z3t9lnpq370exmmjsrrt8lwhzf56pla4j4t0
`electrum --offline --testnet -w ~/.electrum/testnet/wallets/default_test_wallet -v getpubkeys tb1qq2z3t9lnpq370exmmjsrrt8lwhzf56pla4j4t0`

Let the Paper Data Be:
Public Address: tb1qq2z3t9lnpq370exmmjsrrt8lwhzf56pla4j4t0
Public key: 0x0237d0db0db60473c13dacd56043342f90263bc4545d91d92ae2bd2827ccdad0aa
Private key: p2wpkh:cPE1c91SAmiJ3gU7zdyJhQbiaqPX9dvvYdDutD1FDjstW8R3yNje
Hash160 of Public Key: 0xD357872E86E1D4D8B5BA09C3B3CBF0705656EF93


Issuer Data:
Public Address: tb1quh0mmjuwl0gu2wla4t76prdtuzt5hlh0dp6kn5
Public Key:     02c5def4d26d803be6c2ec38db7b693088b504801294276fba734687dcb86741d3
Private Key:    p2wpkh:cQbBdBtspSCEVdTugyZstGNyUZk79bdUkbbRYfyoq7dd5CJ8jHhh
Hash160 of Public Key: 0x60208BB5D099A4681E40DF8B335B29714EBB856A

Example with values filled in:

OP_0
OP_5
OP_16
OP_2

0x02c5def4d26d803be6c2ec38db7b693088b504801294276fba734687dcb86741d3
0x0237d0db0db60473c13dacd56043342f90263bc4545d91d92ae2bd2827ccdad0aa
OP_2
OP_DEPTH
OP_7
OP_EQUAL
OP_IF
  OP_DROP
  OP_2DUP
  OP_HASH160
  0xD357872E86E1D4D8B5BA09C3B3CBF0705656EF93
 
  OP_EQUALVERIFY
  OP_HASH160
  60208BB5D099A4681E40DF8B335B29714EBB856A
  OP_EQUALVERIFY
  OP_2
  OP_4
  OP_PICK
  OP_EQUALVERIFY
  OP_2

  621BA473
  OP_CHECKLOCKTIMEVERIFY
  OP_DROP

  OP_CHECKMULTISIGVERIFY
OP_ELSE
  621BA573
  OP_CHECKLOCKTIMEVERIFY
  OP_DROP
  OP_DUP
  OP_HASH160
  D357872E86E1D4D8B5BA09C3B3CBF0705656EF93
  OP_EQUALVERIFY
  OP_CHECKSIGVERIFY
OP_ENDIF


This idea had sat on my disk for years, but contrast it with https://bitcointalk.org/index.php?topic=5401680.0 perhaps we can combine ideas to make an even better project.

Post
Topic
Board Development & Technical Discussion
Re: Elliptic Curve Point Addition Question
by
sdp
on 07/11/2021, 11:03:28 UTC
I am doing a school project about Bitcoin and more specifically point addition on the Elliptic Curve. I am very new to all this so please forgive my mistakes.

I have been reading that when adding points together the result can go "outside of the bounds before intersecting a third point" as in this image.



This is fascinating but also a little confusing and I would like to know more.

So my questions are:

1. Is it possible to know when the point addition process has gone outside of the field?

And

2. Is there a way (like a Python script or something) that I could use to add 2 points and it would tell me if the result went outside of the field?

I know that the result of the addition is still a valid point on the curve, but I would love to know if it passed out of bounds first.

This would be fantastic for my project to show others how this works.

I hope that made sense and thanks in advance for your help.

The math involves different kinds of objects and so the meaning which is understood as "add" is different.  When we say add two numbers in a finite field, which is what you have to do for this to work, we really mean add like integers and then divide by the special modulus value and keep the remainder. 

So take the clock and consider neither the minute nor day but only the hour.  7+7 is considered 2 rather than 14.  So they're right.  You cannot get above 12.  But 7+7 is 14 (in normal addition).  So I think you want to know whether you can determine when the you get different results.  In the case of the clock, you overflow at 12.  Now not only is addition different but so is division, multiplication and subtraction. 

[1] You can calculate the slope the normal way, find the other point on the graph and you'll get some rational number for the slope and the x and y for the new point may not even be integers.  If they are not both integers, this means you would have to follow the slope outside of the field size and wrap around (perhaps many times) in order to get to the field bounded answer.

Follow the instructions of how to calculate a sum of points (now the points have yet another different meaning for add).   Start with say y^2=x^3-x+7.   Figure out two integer points with trial and error.  The desmos graph will give you some points to try.  Plug in numbers that look like they are in integer spots.  Do your point addition as if they are all real numbers.  Post your third point here.  You'll most probably get some non-integer value.

Use a small modulus like 1999 or 113.  Do this the modulus way and you'll get integers smaller than 113.  How to do division modulus 113 is something you should search for yourself also.  Go search for finite fields.
Post
Topic
Board Development & Technical Discussion
Re: math calculation problem - pay $50 for help
by
sdp
on 06/11/2021, 16:33:22 UTC
What are s1, k1, r1, x1 and z1? Natural numbers? Numbers on a curve? If so which curve? Which number is which coordinate?
And stuff like this..

These are parameters from the curve known as “Secp256k1”. s is a number that goes along with the random point. It's calculated from z which is the hash (number) of the message we want to sign. k is the random number we introduce each time for our signature. r is k times G. I had never seen x before interiawp started their forum career, so it may be unofficial. They mean the private key, but I know it's symbolized by the letter d.

The signature is [r, s].

You actually give me some insight of what this equation really could mean.  It all seemed rather random. 
Post
Topic
Board Development & Technical Discussion
Re: math calculation problem - pay $50 for help
by
sdp
on 06/11/2021, 16:26:35 UTC
Just had problem to solve equation:

s1*k1 - r1*x1 = z1
s1*k1 - r1*x1 = z2

so r=r   , s=s  but diff z1 =! z2

how to take x or k?

paying $50 on bitcoin address

just PM me pleae with solve

z1 should be z2 /

Did you mean to have a k1 and a k2?

Post
Topic
Board Development & Technical Discussion
Re: math calculation problem - pay $50 for help
by
sdp
on 06/11/2021, 16:17:46 UTC
You answer stems from the signatures not being deterministic.  Since they are not deterministic

k1 being the random number and s is the message

s1*k for some k makes a signature.  Now, not being deterministic makes:

s1*k1  != s1*k2

subtract r1*x1 from both sides.

s1*k1 - r1*x1 = s1*k2 - r1*x1

ergo z1 != z2.
Post
Topic
Board New forum software
Topic OP
New Forum Software
by
sdp
on 15/08/2021, 12:11:24 UTC
The problem comes from paying it all out at the beginning instead of at the end.  You can write Bitcoin related posts at proofofbrain.org.  We welcome Bitcoin posts.  The software is based on Ecency code and is backed by the Hive blockchain.  I am actively developing it now.  If you wish to see a specific feature, a user can request here.

What would you like to see in proofofbrain.blog, to make it your favorite forum?

I know I think I need to add notifications, private chat, and private messages...
Post
Topic
Board Project Development
Re: Bitcoin Development Is Beyond Slow! IMHO! Yell at me! Prove Me Wrong! :)
by
sdp
on 08/01/2021, 09:38:58 UTC
All the comments prior to this one say "It's slow but that's a good thing".  I agree.  Maybe it's time to leave the protocol frozen forever but there are ideas that would work on the protocol as is.
Post
Topic
Board Project Development
Re: Finmail - Email service with native support for BTC/USDT
by
sdp
on 07/01/2021, 20:14:38 UTC
Will users be able to self-custody?
Post
Topic
Board Services
Re: Need translators
by
sdp
on 03/12/2020, 14:08:25 UTC
Spanish.  Grin
Post
Topic
Board Services
Re: Crack my bitcoin wallet address and get 0.155 btc + 0.5BTC
by
sdp
on 03/12/2020, 13:36:19 UTC
....

Password found: 'xxxxxxxxxxxxxxxxxxxxxx'

How do I get the private key out of the script?  More reading ? Smiley Thanks for all your help.
Tried pywallet --dumpwallet on it again but was no help.
I think I have the answer bitcoin-tool ... but having trouble compiling it.


You don't need to.  Just install Bitcoin-Core on a system that has never had it or one that has no coins on it and put a copy of your wallet.dat in the bitcoin Application directory.  Then open Bitcoin-core and type in your password.  You can afford to buy yourself a new machine with lots of hard-drive space and RAM now.
Post
Topic
Board Services
Re: Seeking Experienced Partners to Build BTC Wallet
by
sdp
on 03/12/2020, 13:11:19 UTC
Electrum for PCs and for mobile use Edge but these are for on chain bitcoin. 

Electrum allows you to control the fee you pay.  Although I am not saying it will work if you put zero Smiley .  It will display your Bitcoin balance in fiat.
Which is what I think you meant in your post.  You only see the equivalent value in dollars of the total balance but not the transactions.

Edge tracks your spending in the currency of your choice.   Edge shows you how much fiat was spent for each transaction and even saves a memo.  Save the mobile device with the wallet in a secret secure location.

Now as long as the bitcoin nodes these wallets talk to are honest, they can trust the money they received is actually money received.  It is only with clients like bitcoin-core can you really be sure.  Probably shouldn't worry too much about that unless you have a whole bitcoin worth.

sdp
Post
Topic
Board Services
Re: [2020] Will do anything for $0/hour! New to bitcoin!
by
sdp
on 03/12/2020, 12:47:26 UTC
Good you came here. 

I'll pay you $0/hour and you'll learn a lot about bitcoin if you subscribe to and listen to Bitcoin related podcasts.  Just be careful not to listen to them when you have to concentrate on other things. 

A few cautionary things I'll mention:
Custodial services often find they cannot verify your identity while they have your money but they are more than happy to accept your Bitcoin before the KYC process happens.

sdp