Capacity of broadcast channels

It is given in the book by El Gamal that

The capacity region of the DM-BC depends on the channel conditional pmf $ p(y_1 , y _2 |x)$ only through the conditional marginal pmfs $ p(y_1 |x)$ and $ p(y_ 2 |x)$

The statement made is about the entire capacity region. Every point in the capacity region means that there exists a sequence of $ (2^{nR_1},2^{nR_2},n)$ (considering only private messages) codes with 0 error. I am wondering about the converse.

For a given sequence of codes, would broadcast channels with identical marginals have the same achievability, ie, if it is achievable in the first channel, would it be achievable in the second channel and vice versa?

Why Do All Capture Packets Have 802.11 Prorocol and Broadcast Destination? [closed]

I am new to networking and packet sniffing. I have wireshark installed on my ubuntu machine. I am capturing packets but they all have 802.11 as protocol and Broadcast destination. I have enabled promiscuous mode and I set my network interface to monitor mode using airmon-ng check kill and then airmon-ng start wls1. I am listenning on wls1mon on wireshark. I don’t know what is causing this. I also tried to be on the same network as my test PC. But when I do this, I don’t capture packets even though the PC is youtube and having traffic coming over. I tried with tshark and it is the same problem. When I watched some videos on youtube about this, they all captured packets with different protocols. However, I didn’t pay attention wether they were on monitor or managed mode? Can someone please help me? What I am doing wrong?

Broadcast channel that swaps output

Consider a broadcast channel that takes a pair of bits $ (a_0, a_1)$ from Alice and transmits $ a_0$ to Bob and $ a_1$ to Charlie with probability $ p$ and transmits $ a_1$ to Bob and $ a_0$ to Charlie with probability $ 1-p$ . Bob and Charlie cannot communicate between each other.

Is there a name for such a channel and is the capacity of such a channel known?

Laravel websocket Broadcast no funciona

favor me pueden ayudar con el siguiente problem, en el metodo storage estoy creando una atencion, y quiero que al momento de crear la atencion se dispare un nuevo evento “NewAttention” pero no logro entender el funcionamiento

Tengo en mi controlador lo siguiente

$  attention = Attentionlist::create([     'number'    => $  request->number,     'dni'       => $  request->dni,     'ingresado' => now(),     'espera'    => NULL,     'proceso'   => NULL,     'finalizado'=> NULL,     'subcategory_id'=> $  request->subcategory_id,     'totem_id'  => 1 ]); 

y el broadcast que estoy llamando el el siguiente, justo debajo del create

broadcast(new NewAttention($  attention))->toOthers();  

En el archivo NewAttention.php tengo l osiguiente

class NewAttention implements ShouldBroadcastNow {     use Dispatchable, InteractsWithSockets, SerializesModels;      public $  attention;      public function __construct(Attentionlist $  attention)     {         $  this->attention = $  attention;     }      public function broadcastOn()     {         return new Channel('attention');     } } 

Pero al crear la atencion la almacena en la base de datos pero al pasar por la linea del broadcast arroja

app.js:267 POST http://127.0.0.1:8000/api/catchattention 500 (Internal Server Error) dispatchXhrRequest @ app.js:267 xhrAdapter @ app.js:118 dispatchRequest @ app.js:706 Promise.then (async) request @ app.js:513 Axios.<computed> @ app.js:533 wrap @ app.js:966 confirmPrint @ app.js:2294 click @ app.js:48667 invokeWithErrorHandling @ app.js:50785 invoker @ app.js:51110 original._wrapper @ app.js:56463 app.js:633 Uncaught (in promise) Error: Request failed with status code 500     at createError (app.js:633)     at settle (app.js:796)     at XMLHttpRequest.handleLoad (app.js:166) 

¿Que es lo que me estaría faltando?

Using native Fanout exchanges with celery instead of broadcast queues

I’m trying to have a single job publishing to be processed by 2 (or N) tasks. In RabbitMQ, this is typically done through a fanout exchange.

Is this possible with Celery?

This is the current setup I have:

from celery import Celery from kombu import Queue, Exchange from time import sleep  app = Celery('hello', broker='amqp://guest@localhost//')  e = Exchange('hell', type='fanout')  app.conf.task_queues = (     Queue('default', routing_key='#'),     Queue('wow', exchange=e, routing_key='feed.#'),     Queue('great', exchange=e, routing_key='feed.#'), )  app.conf.task_routes = {     'hello': {         'queue': 'wow',     },     'hello2': {         'queue': 'great'     }, }  @app.task(bind=True, queue='wow') def hello(self, id):     print("hello: %s" % id)     return 1  @app.task(bind=True, ) def hello2(self, id):     print("hello2: %s" % id)     return 2 

And then from somewhere else I call:

from test1 import hello  hello.apply_async(args=(0,), exchange='hell', routing_key='feed.test') 

The code above results in hello processing the same task twice. Which I guess makes sense, but seems to completely ignore my setup for exchanges and routing keys. (Is there even a point to setting up exchanges and routing keys in celery?)

I also tried publishing directly through the amqp client:

from test1 import app with app.producer_pool.acquire(block=True) as producer:        producer.publish(             {"id": 1},             routing_key="feed.test",             exchange="hell",             retry=True,        ) 

But get the following message:

[2019-06-23 22:24:48,180: WARNING/MainProcess] Received and deleted unknown message.  Wrong destination?!?  The full contents of the message body was: body: {'id': 1} (9b) {content_type:'application/json' content_encoding:'utf-8'   delivery_info:{'consumer_tag': 'None5', 'delivery_tag': 1, 'redelivered': False, 'exchange': 'hell', 'routing_key': 'feed.test'} headers={}} 

Enviar confirmação de mensagem do pc2 para pc1 por unicast em vez de broadcast

Bom dia, tenho este código feito, em que o trabalho é enviar uma mensagem do pc1 para o pc3, com um interlocutor no meio (pc2). Quando o pc2 recebe mensagem do pc1, envia ao pc1 confirmação de recebimento de mensagem. Quando o pc3 recebe a mensagem, envia para o pc2 a confirmação que por sua vez envia para o pc1. O envio da mensagem do pc2 para o pc3 é via broadcast. Tudo o resto é unicast, contudo no meu código tenho o envio da confirmação do pc2 para o pc1 também por broadcast. Alguém me consegue ajudar para mudar o código? Obrigado.

código do pc2:

 #include <stdio.h>  #include <stdlib.h>  #include <sys/types.h>  #include <sys/socket.h>  #include <netinet/in.h>  #include <string.h>  #define exit_on_error(s,m) if (s < 0) { perror(m); exit(1); }  #define MAX_BUFFER 512   int main(int argc, char* argv[])  {     int sock, length, fromlen, r, send_sock, sendlen, V = 1, n; //int n declarado     struct sockaddr_in SERVER_ADDR;     struct sockaddr_in FROM_ADDR;     struct sockaddr_in SENDTO_ADDR;     //struct sockaddr_in LOCALMENTE_addr;     char buf[MAX_BUFFER];      //verifica argumentos     if (argc != 5)     {         printf("USAGE: %s <a.porto> <ip_broadcast> <c.porto> <b.porto>\n",argv[0]);         exit(1);     }     //cria socket UDP     sock = socket(AF_INET, SOCK_DGRAM, 0);     if(sock < 0) printf("SOCKET");     length = sizeof(SERVER_ADDR);     bzero(&SERVER_ADDR, length);     SERVER_ADDR.sin_family = AF_INET;     SERVER_ADDR.sin_addr.s_addr = INADDR_ANY;     SERVER_ADDR.sin_port = htons(atoi(argv[1]));      setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &V, sizeof(V));     sendlen = sizeof(SENDTO_ADDR);     bzero(&SENDTO_ADDR, sendlen);     SENDTO_ADDR.sin_family = AF_INET;     SENDTO_ADDR.sin_addr.s_addr = inet_addr(argv[2]);     SENDTO_ADDR.sin_port = htons(atoi(argv[3]));      if(bind(sock, (struct sockaddr *)&SERVER_ADDR,length) < 0) printf("BIND:  ");      fromlen = sizeof(struct sockaddr_in);      while(1)     {      printf("Wait for the next message...!\n");     bzero(&buf, MAX_BUFFER);     n = recvfrom(sock,buf,MAX_BUFFER,0,(struct sockaddr *) &FROM_ADDR, &fromlen);        if (strstr(buf,"Confirma")){      printf("Mensagem recebida: [%s], bytes recebidos: [%d]\n",buf,n);       SENDTO_ADDR.sin_addr.s_addr = inet_addr(argv[2]);      SENDTO_ADDR.sin_port = htons(atoi(argv[4]));      n = sendto (sock, buf,MAX_BUFFER,0,(struct sockaddr *) &SENDTO_ADDR, sendlen);       }     else{     printf("Mensagem recebida: [%s], bytes recebidos: [%d]\n",buf,n);     SENDTO_ADDR.sin_addr.s_addr = inet_addr(argv[2]);     SENDTO_ADDR.sin_port = htons(atoi(argv[3]));    n = sendto (sock, buf,MAX_BUFFER,0,(struct sockaddr *) &SENDTO_ADDR, sendlen);      SENDTO_ADDR.sin_addr.s_addr = inet_addr(argv[2]);    SENDTO_ADDR.sin_port = htons(atoi(argv[4]));    strcpy(buf," Confirmado interlocutor. ");    n = sendto (sock, buf,MAX_BUFFER,0,(struct sockaddr *) &SENDTO_ADDR, sendlen);     }      }  } 

Is the any workable testnet3 Bitcoin solution for creating, signing, broadcast a normal transaction using Golang?

Currently I’m trying to create, sign & broadcast bitcoin transaction using btcsuite. For start, I’ve already had testnet3 address & its associated privatekey for testing. However, hunting through the post and articles like below:-

  1. here
  2. here
  3. here

The solution proposed above its not complete, for first one, it only covers until signing (i knew the author claimed its not broadcastable unless you provide the utxo which i did if i’m right) but when tried to braodcast it failed with message

“Error validating transaction: Transaction be9b294695bfb201a5cff32af074a4bf72b073e3c9dad1969111165bf118a622 orphaned, missing reference f0c0d3b3eecf911ede996a74ceadc9366068791450c9e6bacee9ae202f3690d1.”

I have no idea what’s going on and I suspect its script is incompatible.

So, the bottom line is I just want a workable example in bitcoin testnet3 that shows “from 1 address transfer some bitcoin to other address” by showing the process of creating raw transaction, sign it with private key, turn it to raw transaction in hex format & broadcast it using something like https://live.blockcypher.com/btc/pushtx/ (BTC testnet)

currently my code is as follow:-

package main import (     "fmt"     "encoding/hex"     "bytes"     "github.com/btcsuite/btcutil"     btcchain "github.com/btcsuite/btcd/chaincfg"     "github.com/btcsuite/btcd/chaincfg/chainhash"     "github.com/btcsuite/btcd/txscript"     "github.com/btcsuite/btcd/wire" ) func txToHex(tx *wire.MsgTx) string {     buf := bytes.NewBuffer(make([]byte, 0, tx.SerializeSize()))     tx.Serialize(buf)     return hex.EncodeToString(buf.Bytes()) }  func stkbtc(){   pvkey := "cNjXNxcfawzyfGUxaG94rKqayAL2n7QWioKhCkHbQsBRT7SbDyGu"   txHash := "e028b5bf030a24986a03b03b89dec037e8462ae32bc93679cb49d7c779685987"   destination := "n2kRiAkW1xr5DVy7QKVGaYiZbwpS7j23jJ"   var amount int64 = 100000000   txFee := int64(500000)    //try send btc   decodedwif,err := btcutil.DecodeWIF(pvkey)   if err != nil {     fmt.Printf("decodedwif error: %v\n",err)   }   fmt.Printf("decodedwif       : %v\n",decodedwif)    addresspubkey, _ := btcutil.NewAddressPubKey(decodedwif.PrivKey.PubKey().SerializeUncompressed(), &btcchain.TestNet3Params)   sourceTx := wire.NewMsgTx(wire.TxVersion)   sourceUtxoHash, _ := chainhash.NewHashFromStr(txHash)    sourceUtxo := wire.NewOutPoint(sourceUtxoHash, 0)    sourceTxIn := wire.NewTxIn(sourceUtxo, nil, nil)   destinationAddress, _ := btcutil.DecodeAddress(destination, &btcchain.TestNet3Params)    sourceAddress, err := btcutil.DecodeAddress(addresspubkey.EncodeAddress(), &btcchain.TestNet3Params)   if err != nil {     fmt.Printf("sourceAddress err: %v\n",err)   }    destinationPkScript, _ := txscript.PayToAddrScript(destinationAddress)    sourcePkScript, _ := txscript.PayToAddrScript(sourceAddress)   sourceTxOut := wire.NewTxOut(amount, sourcePkScript)    sourceTx.AddTxIn(sourceTxIn)   sourceTx.AddTxOut(sourceTxOut)   sourceTxHash := sourceTx.TxHash()    redeemTx := wire.NewMsgTx(wire.TxVersion)   prevOut := wire.NewOutPoint(&sourceTxHash, 0)   redeemTxIn := wire.NewTxIn(prevOut, nil, nil)   redeemTx.AddTxIn(redeemTxIn)   redeemTxOut := wire.NewTxOut((amount - txFee), destinationPkScript)   redeemTx.AddTxOut(redeemTxOut)    sigScript, err := txscript.SignatureScript(redeemTx, 0, sourceTx.TxOut[0].PkScript, txscript.SigHashAll, decodedwif.PrivKey, false)   if err != nil {     fmt.Printf("sigScript err: %v\n",err)   }   redeemTx.TxIn[0].SignatureScript = sigScript   fmt.Printf("sigScript: %v\n",hex.EncodeToString(sigScript))     //Validate signature   flags := txscript.StandardVerifyFlags   vm, err := txscript.NewEngine(sourceTx.TxOut[0].PkScript, redeemTx, 0, flags, nil, nil, amount)   if err != nil {     fmt.Printf("err != nil: %v\n",err)   }   if err := vm.Execute(); err != nil {     fmt.Printf("vm.Execute > err != nil: %v\n",err)   }    fmt.Printf("redeemTx: %v\n",txToHex(redeemTx)) }  func main(){     stkbtc() } 

the txhash was from previous transaction where i got the testnet bitcoin from faucet & nothing else..

  • Sender address: mpYGA8wRCArpGTs6aJMmZRWyUuPoZmeLJv
  • Sender public key: 02217deb8b3782236fa8214da94bd5a9338f2eeb3299c39c057fb68ada63d93df7
  • Sender private key: cNjXNxcfawzyfGUxaG94rKqayAL2n7QWioKhCkHbQsBRT7SbDyGu

  • Target address: n2kRiAkW1xr5DVy7QKVGaYiZbwpS7j23jJ

Please advice what is wrong with the code above, really appreciate it if someone can point it out.

Create a raw transaction and broadcast it to blockchain using bitcoin core

I have a address- n3xYQtxvVwpBPSbgGsGRdMWz1YTUjakiMV, amount that i want to send-1 BTC and i have a private key. How can i create a raw transaction using it and broadcast it to blockchain using bitcoin core.

I have tried this command:

bitcoin-cli createrawtransaction '[{"txid":"dbdc2e2c7f143af70c5e7e8725f55d226b3c058d7bf34a303‌​091b3c6a514848c","vo‌​ut":1}]' '{"n3xYQtxvVwpBPSbgGsGRdMWz1YTUjakiMV":1}'  

and this: bitcoin-cli sendrawtransaction XXX