In this comment I simply show that
Under certain assumptions the problem is not an estimation problem, there is an exact solution for $\sigma$ and a solution for the structural errors $\alpha_i$ up to a normalisation.
The demand system considered is described by the Marshall demand function
$$x_k^\star(p,M) = \left(\frac{\alpha_j}{p_j}\right)^{\sigma}\frac{M}{\sum_j p_j^{1-\sigma}\alpha_j^\sigma},$$
which implies that the expenditure shares are given as
$$s_k(p,I) := \frac{p_k x_k^\star(p,I)}{\sum_j p_j x_j^\star(p,I)} = \frac{p_k^{1-\sigma}\alpha_k^\sigma}{\sum_j p_j^{1-\sigma}\alpha_j^\sigma}.$$
I then define $K(p,\alpha) := \sum_j p_j^{1-\sigma}\alpha_j^\sigma$ where $p = (p_1,...,p_N)$ and $\alpha := (\alpha_1,...,\alpha_N)$ and log linearize expenditure shares to get
$$(1) \ \ \ \log s_k = (1-\sigma) p_k + \sigma \log \alpha_k + K(p,\alpha)$$
Single cross section of aggregate data: Given data on $\{s_k,p_k\}_{k=1}^N$ this equation can be estimated using OLS under the assumption that $\mathbb E[p_k,\ln \alpha_k] =0$.
Consider now the situation where two time periods are observed $t=1,2$ and prices are assumed to show some variation while it is assumed $\alpha$ the comsumer demand parameters are time constant
$$(1') \ \ \ \log s_{kt} = (1-\sigma) p_{kt} + \sigma \log \alpha_k + K_t(p_t,\alpha),$$
where I have added time index to $K$ because the price-vector is varying across time. It is clear that this is a standard two-way fixed effects regression with no good-time specific error term. Using methods of demeaning know from fixed effects estimation methodology one can find the exact solution for $(1-\sigma)$.
First take averages over goods to get
$$\frac{1}{N}\sum_k \log s_{kt} = (1-\sigma) \frac{1}{N}\sum_kp_{kt} + \frac{1}{N}\sum_k \sigma \log \alpha_k + K_t(p_t,\alpha),$$
substract from equation (1) to get
$$(2) \ \ \ \ ds_{kt} = (1-\sigma) dp_{kt} + \sigma d\alpha_k,$$
where the $d$ in from of the variable simply signifies it has been demeaned in log-version so $ds_{kt} := \log s_{kt} - \frac{1}{N}\sum_k \log s_{kt}$.
Second take first differences over time to get
$$(3) \ \ \ \ ds_{k2} - ds_{k1} = (1-\sigma) [dp_{k2} - dp_{k1}]$$
such that
$$(4) \ \ \forall k: \ \ \ (1-\sigma) = \frac{ds_{k2} - ds_{k1}}{dp_{k2} - dp_{k1}}$$
having found $\sigma$ one can find $\alpha_i$'s using equation (2). This means that one has to solve for $d\alpha_k = \alpha_k$ under normalisation that $\frac{1}{N}\sum_k \log \alpha_k = 0$. So the average of the structural errors cannot be recovered.
Under the assumption that $\alpha_k$'s are time invariant one with data $\{p_{jt},s_{jt}\}_{j=1,...N, t=1,2}$ recover $\sigma$ using exactly using (4) and the structural errors $\alpha_k$ up to a single normalization using (2).
To illustrate the calculations I provide a small simulation:
#set.seed(1)
N <- 50
M <- 100000
sigma <- 4
# Simulate structural errors assumed time-constant
phi <- 2*runif(N)+2
phi <- phi/((prod(phi))^(1/N))
# Simulate prices
p1 <- 2*runif(N)+2
p2 <- 2*runif(N)+2
s1 <- (p1/phi)^(1-sigma)
s1 <- s1/sum(s1)
E1 <- M*s1
s2 <- (p2/phi)^(1-sigma)
s2 <- s2/sum(s2)
E2 <- M*s2
x1 <- E1/p1
x2 <- E2/p2
library(data.table)
dt <- data.table(good=rep(1:N,2),time=rep(c(1,2),each=N),price=c(p1,p2),x=c(x1,x2))
dt[,E:=sum(price*x),by=time]
dt[,share:=price*x/E]
dt[,ds:=log(share)-mean(log(share)),by=time]
dt[,dp:=log(price)-mean(log(price)),by=time]
1-coef(lm(ds~dp+as.factor(good),data=dt))[2]
1-coef(lm(log(share)~log(price)+as.factor(good)+as.factor(time),data=dt))[2]
sigma
# Or from a single instead of all N
temp <- as.matrix(dt[good==2,.(ds,dp)])
1-(temp[2,1] - temp[1,1]) / (temp[2,2]-temp[1,2])
The calculations in this post are based on Stephen J. Redding and David E. Weinstein paper A UNIFIED APPROACH TO ESTIMATING DEMAND AND WELFARE.